From a345781f086c7de0cf2fcc088b7bc67e1d9994fe Mon Sep 17 00:00:00 2001 From: Colin Maudry Date: Tue, 27 Aug 2019 10:37:15 +0200 Subject: [PATCH 01/25] Section III mapped for F01, F04 and F05 --- output/mapping/F01_2014.csv | 24 ++++++++++++------------ output/mapping/F04_2014.csv | 2 +- output/mapping/F05_2014.csv | 8 ++++---- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/output/mapping/F01_2014.csv b/output/mapping/F01_2014.csv index 3689500d..c60a20f3 100644 --- a/output/mapping/F01_2014.csv +++ b/output/mapping/F01_2014.csv @@ -87,19 +87,19 @@ xpath,label-key,index,comment,guidance /OBJECT_CONTRACT/OBJECT_DESCR/INFO_ADD,info_additional,II.2.14,,"Append to the lot's `.description`, and append to the item's `.description`\n\nThis results in a loss of structure. (WARNING #28)" /OBJECT_CONTRACT/DATE_PUBLICATION_NOTICE,date_of_contract_notice,II.3,,Map to `tender.communication.futureNoticeDate` /LEFTI,info_legal,III,,"The standard forms express exclusion grounds and selection criteria in this section as unstructured text. In the [introductory note](https://github.com/eForms/eForms/raw/master/20180604_eForms_consultation_introduction.docx) to its [eForms consultation](https://github.com/eForms/eForms), the European Commission proposes to create an extension to eForms to implement the [European Single Procurement Document (ESPD)](http://ec.europa.eu/growth/single-market/public-procurement/e-procurement/espd/), which expresses this information as structured data, following the model of the [Core Criterion and Core Evidence Vocabulary](https://joinup.ec.europa.eu/solution/core-criterion-and-core-evidence-vocabulary). With respect to OCDS, work on this section is postponed until either the extension to eForms is available or until the [ESPD Exchange Data Model](https://github.com/ESPD/ESPD-EDM) is stable." -/LEFTI/SUITABILITY,info_evaluating_requir,,,"" -/LEFTI/ECONOMIC_CRITERIA_DOC,criteria_selection_docs,,,"" -/LEFTI/ECONOMIC_FINANCIAL_INFO,info_evaluating_weth_requir,,,"" -/LEFTI/ECONOMIC_FINANCIAL_MIN_LEVEL,min_standards_required,,,"" -/LEFTI/TECHNICAL_CRITERIA_DOC,criteria_selection_docs,,,"" -/LEFTI/TECHNICAL_PROFESSIONAL_INFO,info_evaluating_weth_requir,,,"" -/LEFTI/TECHNICAL_PROFESSIONAL_MIN_LEVEL,min_standards_required,,,"" -/LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop,,,"" -/LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program,,,Set `tender.contractTerms.reservedExecution` to `true` -/LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,"" -/LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,"" +/LEFTI/SUITABILITY,info_evaluating_requir,,,"Map to `tender.participationConditions.pursuingProfessionalActivity`" +/LEFTI/ECONOMIC_CRITERIA_DOC,criteria_selection_docs,,,"Set `tender.participationConditions.hasEconomicCriteriaInDocuments` to `true`" +/LEFTI/ECONOMIC_FINANCIAL_INFO,info_evaluating_weth_requir,,,"Map to `tender.participationConditions.economicSelectionCritera`" +/LEFTI/ECONOMIC_FINANCIAL_MIN_LEVEL,min_standards_required,,,"Map to `tender.participationConditions.economicRequiredStandards`" +/LEFTI/TECHNICAL_CRITERIA_DOC,criteria_selection_docs,,,"Set `tender.participationConditions.hasTechnicalCriteriaInDocuments` to `true`" +/LEFTI/TECHNICAL_PROFESSIONAL_INFO,info_evaluating_weth_requir,,,"Map to `tender.participationConditions.technicalSelectionCritera`" +/LEFTI/TECHNICAL_PROFESSIONAL_MIN_LEVEL,min_standards_required,,,"Map to `tender.participationConditions.technicalRequiredStandards`" +/LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop,,,"Set `tender.participationConditions.hasReservedParticipation` to `true`" +/LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program,,,Set `tender.contractTerms.hasReservedExecution` to `true` +/LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,Set `tender.contractTerms.hasReservedToProfession` to `true` +/LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,Map to `tender.contractTerms.reservedToProfessionLawReference` /LEFTI/PERFORMANCE_CONDITIONS,other_conditions,III.2.2,,Map to `tender.contractTerms.termsPerformance` -/LEFTI/PERFORMANCE_STAFF_QUALIFICATION,staff_responsible_indicate,,,"" +/LEFTI/PERFORMANCE_STAFF_QUALIFICATION,staff_responsible_indicate,,,Set `tender.contractTerms.hasObligationStaffQualificationInformation` to `true` /PROCEDURE,procedure,IV,,"" /PROCEDURE/PT_RESTRICTED,proctype_restricted,,,"Set `tender.procurementMethod` to 'selective', and set `tender.procurementMethodDetails` to 'Restricted procedure'" /PROCEDURE/PT_COMPETITIVE_NEGOTIATION,proctype_comp_negotiation,,,"Set `tender.procurementMethod` to 'selective', and set `tender.procurementMethodDetails` to 'Competitive procedure with negotiation'" diff --git a/output/mapping/F04_2014.csv b/output/mapping/F04_2014.csv index a52ed00c..280bc23a 100644 --- a/output/mapping/F04_2014.csv +++ b/output/mapping/F04_2014.csv @@ -92,7 +92,7 @@ xpath,label-key,index,comment,guidance /LEFTI/TECHNICAL_CRITERIA_DOC,criteria_selection_docs,,,"" /LEFTI/TECHNICAL_PROFESSIONAL_INFO,info_evaluating_weth_requir,,,"" /LEFTI/TECHNICAL_PROFESSIONAL_MIN_LEVEL,min_standards_required,,,"" -/LEFTI/RULES_CRITERIA,descr_brief_rules,,,"" +/LEFTI/RULES_CRITERIA,descr_brief_rules,,,"Map to `tender.participationConditions.objectiveRulesCriteria`" /LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop,,,"" /LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program,,,Set `tender.contractTerms.reservedExecution` to `true` /LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,"" diff --git a/output/mapping/F05_2014.csv b/output/mapping/F05_2014.csv index 32e16044..df764ca1 100644 --- a/output/mapping/F05_2014.csv +++ b/output/mapping/F05_2014.csv @@ -100,9 +100,9 @@ xpath,label-key,index,comment,guidance /LEFTI/RULES_CRITERIA,descr_brief_rules,,,"" /LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop,,,"" /LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program,,,Set `tender.contractTerms.reservedExecution` to `true` -/LEFTI/DEPOSIT_GUARANTEE_REQUIRED,deposits_required,III.1.6,,"" -/LEFTI/MAIN_FINANCING_CONDITION,financing_conditions,III.1.7,,"" -/LEFTI/LEGAL_FORM,legal_form_taken,III.1.8,,"" +/LEFTI/DEPOSIT_GUARANTEE_REQUIRED,deposits_required,III.1.6,,"Map to `tender.participationConditions.depositsGuarantees`" +/LEFTI/MAIN_FINANCING_CONDITION,financing_conditions,III.1.7,,Map to `tender.participationConditions.financingConditions` +/LEFTI/LEGAL_FORM,legal_form_taken,III.1.8,,"Map to `tender.participationConditions.groupLegalForm`" /LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,"" /LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,"" /LEFTI/PERFORMANCE_CONDITIONS,other_conditions,III.2.2,,Map to `tender.contractTerms.termsPerformance` @@ -134,7 +134,7 @@ xpath,label-key,index,comment,guidance /PROCEDURE/DATE_TENDER_VALID,date_tender_valid,,,Map to `tender.submissionTerms.bidValidityPeriod.endDate` /PROCEDURE/DURATION_TENDER_VALID,duration_months,,,"Multiply by 30, and map to `tender.submissionTerms.bidValidityPeriod.durationInDays`" /PROCEDURE/OPENING_CONDITION,opening_conditions,IV.2.7,,"" -/PROCEDURE/OPENING_CONDITION/DATE_OPENING_TENDERS,date,,https://github.com/open-contracting-archive/trade/blob/master/draft_extensions/milestone_RelatedParties,Map to the date component of `tender.awardPeriod.startDate` and to the date component of `tender.bidOpening.date` +/PROCEDURE/OPENING_CONDITION/DATE_OPENING_TENDERS,date,,https://github.com/open-contracting-archive/trade/blob/master/draft_extensions/milestone_RelatedParties,Map to the date component of `tender.awardPeriod.startDate` and to the date component of `tender.bidOpening.date` /PROCEDURE/OPENING_CONDITION/TIME_OPENING_TENDERS,time,,https://github.com/open-contracting-archive/trade/blob/master/draft_extensions/milestone_RelatedParties,Map to the time component of `tender.awardPeriod.startDate` and to the time component of `tender.bidOpening.date` /PROCEDURE/OPENING_CONDITION/PLACE,opening_place,,https://github.com/open-contracting-archive/trade/blob/master/draft_extensions/milestone_RelatedParties,Map to `tender.bidOpening.address.streetAddress` /PROCEDURE/OPENING_CONDITION/INFO_ADD,opening_addit_info,,https://github.com/open-contracting-archive/trade/blob/master/draft_extensions/milestone_RelatedParties,Map to `tender.bidOpening.description` From 961a9cf028b49534e1047619ad45d3d98f189786 Mon Sep 17 00:00:00 2001 From: Colin Maudry Date: Tue, 27 Aug 2019 11:59:17 +0200 Subject: [PATCH 02/25] Section mapped for F07 --- output/mapping/F07_2014.csv | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/output/mapping/F07_2014.csv b/output/mapping/F07_2014.csv index 8e329abe..8776fadc 100644 --- a/output/mapping/F07_2014.csv +++ b/output/mapping/F07_2014.csv @@ -66,9 +66,9 @@ xpath,label-key,index,comment,guidance /LEFTI,info_legal,III,,"The standard forms express exclusion grounds and selection criteria in this section as unstructured text. In the [introductory note](https://github.com/eForms/eForms/raw/master/20180604_eForms_consultation_introduction.docx) to its [eForms consultation](https://github.com/eForms/eForms), the European Commission proposes to create an extension to eForms to implement the [European Single Procurement Document (ESPD)](http://ec.europa.eu/growth/single-market/public-procurement/e-procurement/espd/), which expresses this information as structured data, following the model of the [Core Criterion and Core Evidence Vocabulary](https://joinup.ec.europa.eu/solution/core-criterion-and-core-evidence-vocabulary). With respect to OCDS, work on this section is postponed until either the extension to eForms is available or until the [ESPD Exchange Data Model](https://github.com/ESPD/ESPD-EDM) is stable." /LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop,,,"" /LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program,,,Set `tender.contractTerms.reservedExecution` to `true` -/LEFTI/QUALIFICATION,qs_qualification,III.1.9,,"" -/LEFTI/QUALIFICATION/CONDITIONS,qs_conditions_qualify,,,"" -/LEFTI/QUALIFICATION/METHODS,qs_methods_verified,,,"" +/LEFTI/QUALIFICATION,qs_qualification,III.1.9,,Discard +/LEFTI/QUALIFICATION/CONDITIONS,qs_conditions_qualify,,,"Add to the `tender.participationConditions.qualificationSystemConditions` array" +/LEFTI/QUALIFICATION/METHODS,qs_methods_verified,,,"Add to the `tender.participationConditions.qualificationSystemMethods` array" /LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,"" /LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,"" /LEFTI/PERFORMANCE_CONDITIONS,other_conditions,III.2.2,,Map to `tender.contractTerms.termsPerformance` From 61a11755d4c13560b7bb77f8a4c78c8e9dd87f14 Mon Sep 17 00:00:00 2001 From: Colin Maudry Date: Tue, 27 Aug 2019 22:34:26 +0200 Subject: [PATCH 03/25] Section III mapped for F12 and F21 --- output/mapping/F12_2014.csv | 4 ++-- output/mapping/F21_2014.csv | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/output/mapping/F12_2014.csv b/output/mapping/F12_2014.csv index a9c3ebdb..9efe2414 100644 --- a/output/mapping/F12_2014.csv +++ b/output/mapping/F12_2014.csv @@ -52,8 +52,8 @@ xpath,label-key,index,comment,guidance /OBJECT_CONTRACT/OBJECT_DESCR/NO_EU_PROGR_RELATED,_no,,,"Discard. If there's no party with the role 'funder' and the name 'European Union', then the procurement isn't related to a project and/or programme financed by European Union funds." /LEFTI,info_legal,III,,"The standard forms express exclusion grounds and selection criteria in this section as unstructured text. In the [introductory note](https://github.com/eForms/eForms/raw/master/20180604_eForms_consultation_introduction.docx) to its [eForms consultation](https://github.com/eForms/eForms), the European Commission proposes to create an extension to eForms to implement the [European Single Procurement Document (ESPD)](http://ec.europa.eu/growth/single-market/public-procurement/e-procurement/espd/), which expresses this information as structured data, following the model of the [Core Criterion and Core Evidence Vocabulary](https://joinup.ec.europa.eu/solution/core-criterion-and-core-evidence-vocabulary). With respect to OCDS, work on this section is postponed until either the extension to eForms is available or until the [ESPD Exchange Data Model](https://github.com/ESPD/ESPD-EDM) is stable." /LEFTI/CRITERIA_SELECTION,criteria_selection,III.1.10,,"" -/LEFTI/PARTICULAR_PROFESSION,dc_indicate_profession,,,"" -/LEFTI/NO_PARTICULAR_PROFESSION,_no,,,"" +/LEFTI/PARTICULAR_PROFESSION,dc_indicate_profession,,,"Map to `tender.contractTerms.reservedToProfession`" +/LEFTI/NO_PARTICULAR_PROFESSION,_no,,,"Set `tender.participationConditions.hasReservedToProfession` to `false`" /PROCEDURE,procedure,IV,,"" /PROCEDURE/PT_OPEN,open,,,"Set `tender.procurementMethod` to 'open', and set `tender.procurementMethodDetails` to 'Open procedure'" /PROCEDURE/PT_RESTRICTED,type_restricted,,,"Set `tender.procurementMethod` to 'selective', and set `tender.procurementMethodDetails` to 'Restricted procedure'" diff --git a/output/mapping/F21_2014.csv b/output/mapping/F21_2014.csv index d5bc3121..bc49d98f 100644 --- a/output/mapping/F21_2014.csv +++ b/output/mapping/F21_2014.csv @@ -83,7 +83,7 @@ xpath,label-key,index,comment,guidance /LEFTI/RULES_CRITERIA,descr_brief_rules,,,"" /LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop,,,"" /LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program,,,Set `tender.contractTerms.reservedExecution` to `true` -/LEFTI/RESERVED_ORGANISATIONS_SERVICE_MISSION,reserved_public_mission,,,"" +/LEFTI/RESERVED_ORGANISATIONS_SERVICE_MISSION,reserved_public_mission,,,"Set `tender.participationConditions.hasReservedParticipationPublicService` to `true`" /LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,"" /LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,"" /LEFTI/PERFORMANCE_CONDITIONS,other_conditions,III.2.2,,Map to `tender.contractTerms.termsPerformance` From 17b86881f8824a225a95666595b4d3e87dc9c6bf Mon Sep 17 00:00:00 2001 From: Colin Maudry Date: Wed, 28 Aug 2019 17:08:46 +0200 Subject: [PATCH 04/25] Add a Document to tender.documents instead of minting a new field --- output/mapping/F01_2014.csv | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/output/mapping/F01_2014.csv b/output/mapping/F01_2014.csv index c60a20f3..4d2aaf88 100644 --- a/output/mapping/F01_2014.csv +++ b/output/mapping/F01_2014.csv @@ -88,10 +88,10 @@ xpath,label-key,index,comment,guidance /OBJECT_CONTRACT/DATE_PUBLICATION_NOTICE,date_of_contract_notice,II.3,,Map to `tender.communication.futureNoticeDate` /LEFTI,info_legal,III,,"The standard forms express exclusion grounds and selection criteria in this section as unstructured text. In the [introductory note](https://github.com/eForms/eForms/raw/master/20180604_eForms_consultation_introduction.docx) to its [eForms consultation](https://github.com/eForms/eForms), the European Commission proposes to create an extension to eForms to implement the [European Single Procurement Document (ESPD)](http://ec.europa.eu/growth/single-market/public-procurement/e-procurement/espd/), which expresses this information as structured data, following the model of the [Core Criterion and Core Evidence Vocabulary](https://joinup.ec.europa.eu/solution/core-criterion-and-core-evidence-vocabulary). With respect to OCDS, work on this section is postponed until either the extension to eForms is available or until the [ESPD Exchange Data Model](https://github.com/ESPD/ESPD-EDM) is stable." /LEFTI/SUITABILITY,info_evaluating_requir,,,"Map to `tender.participationConditions.pursuingProfessionalActivity`" -/LEFTI/ECONOMIC_CRITERIA_DOC,criteria_selection_docs,,,"Set `tender.participationConditions.hasEconomicCriteriaInDocuments` to `true`" +/LEFTI/ECONOMIC_CRITERIA_DOC,criteria_selection_docs,,,"Add a `Document` object to the `tender.documents` array, set its `.type` to 'economicCriteriaSelection', and set its `.id`." /LEFTI/ECONOMIC_FINANCIAL_INFO,info_evaluating_weth_requir,,,"Map to `tender.participationConditions.economicSelectionCritera`" /LEFTI/ECONOMIC_FINANCIAL_MIN_LEVEL,min_standards_required,,,"Map to `tender.participationConditions.economicRequiredStandards`" -/LEFTI/TECHNICAL_CRITERIA_DOC,criteria_selection_docs,,,"Set `tender.participationConditions.hasTechnicalCriteriaInDocuments` to `true`" +/LEFTI/TECHNICAL_CRITERIA_DOC,criteria_selection_docs,,"Add a `Document` object to the `tender.documents` array, set its `.type` to 'technicalCriteriaSelection', and set its `.id`." /LEFTI/TECHNICAL_PROFESSIONAL_INFO,info_evaluating_weth_requir,,,"Map to `tender.participationConditions.technicalSelectionCritera`" /LEFTI/TECHNICAL_PROFESSIONAL_MIN_LEVEL,min_standards_required,,,"Map to `tender.participationConditions.technicalRequiredStandards`" /LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop,,,"Set `tender.participationConditions.hasReservedParticipation` to `true`" From c6f3e2c7462ca0c66b2d86b90683611e13bdb6b2 Mon Sep 17 00:00:00 2001 From: Colin Maudry Date: Wed, 28 Aug 2019 18:34:59 +0200 Subject: [PATCH 05/25] Discard > "" --- output/mapping/F07_2014.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/output/mapping/F07_2014.csv b/output/mapping/F07_2014.csv index 8776fadc..7e8c95a1 100644 --- a/output/mapping/F07_2014.csv +++ b/output/mapping/F07_2014.csv @@ -66,7 +66,7 @@ xpath,label-key,index,comment,guidance /LEFTI,info_legal,III,,"The standard forms express exclusion grounds and selection criteria in this section as unstructured text. In the [introductory note](https://github.com/eForms/eForms/raw/master/20180604_eForms_consultation_introduction.docx) to its [eForms consultation](https://github.com/eForms/eForms), the European Commission proposes to create an extension to eForms to implement the [European Single Procurement Document (ESPD)](http://ec.europa.eu/growth/single-market/public-procurement/e-procurement/espd/), which expresses this information as structured data, following the model of the [Core Criterion and Core Evidence Vocabulary](https://joinup.ec.europa.eu/solution/core-criterion-and-core-evidence-vocabulary). With respect to OCDS, work on this section is postponed until either the extension to eForms is available or until the [ESPD Exchange Data Model](https://github.com/ESPD/ESPD-EDM) is stable." /LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop,,,"" /LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program,,,Set `tender.contractTerms.reservedExecution` to `true` -/LEFTI/QUALIFICATION,qs_qualification,III.1.9,,Discard +/LEFTI/QUALIFICATION,qs_qualification,III.1.9,,"" /LEFTI/QUALIFICATION/CONDITIONS,qs_conditions_qualify,,,"Add to the `tender.participationConditions.qualificationSystemConditions` array" /LEFTI/QUALIFICATION/METHODS,qs_methods_verified,,,"Add to the `tender.participationConditions.qualificationSystemMethods` array" /LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,"" From 4ab7602e2cbf8bac5758660d0e4e17d9f045c073 Mon Sep 17 00:00:00 2001 From: Colin Maudry Date: Wed, 28 Aug 2019 18:38:06 +0200 Subject: [PATCH 06/25] Array of selection criteria and a .type field --- output/mapping/F01_2014.csv | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/output/mapping/F01_2014.csv b/output/mapping/F01_2014.csv index 4d2aaf88..7b28fa1d 100644 --- a/output/mapping/F01_2014.csv +++ b/output/mapping/F01_2014.csv @@ -87,13 +87,13 @@ xpath,label-key,index,comment,guidance /OBJECT_CONTRACT/OBJECT_DESCR/INFO_ADD,info_additional,II.2.14,,"Append to the lot's `.description`, and append to the item's `.description`\n\nThis results in a loss of structure. (WARNING #28)" /OBJECT_CONTRACT/DATE_PUBLICATION_NOTICE,date_of_contract_notice,II.3,,Map to `tender.communication.futureNoticeDate` /LEFTI,info_legal,III,,"The standard forms express exclusion grounds and selection criteria in this section as unstructured text. In the [introductory note](https://github.com/eForms/eForms/raw/master/20180604_eForms_consultation_introduction.docx) to its [eForms consultation](https://github.com/eForms/eForms), the European Commission proposes to create an extension to eForms to implement the [European Single Procurement Document (ESPD)](http://ec.europa.eu/growth/single-market/public-procurement/e-procurement/espd/), which expresses this information as structured data, following the model of the [Core Criterion and Core Evidence Vocabulary](https://joinup.ec.europa.eu/solution/core-criterion-and-core-evidence-vocabulary). With respect to OCDS, work on this section is postponed until either the extension to eForms is available or until the [ESPD Exchange Data Model](https://github.com/ESPD/ESPD-EDM) is stable." -/LEFTI/SUITABILITY,info_evaluating_requir,,,"Map to `tender.participationConditions.pursuingProfessionalActivity`" +/LEFTI/SUITABILITY,info_evaluating_requir,,,"Add a `SelectionCriterion` object to the `tender.selectionCriteria` array. Map to `.description`, and set its '.type' to 'suitability'" /LEFTI/ECONOMIC_CRITERIA_DOC,criteria_selection_docs,,,"Add a `Document` object to the `tender.documents` array, set its `.type` to 'economicCriteriaSelection', and set its `.id`." -/LEFTI/ECONOMIC_FINANCIAL_INFO,info_evaluating_weth_requir,,,"Map to `tender.participationConditions.economicSelectionCritera`" /LEFTI/ECONOMIC_FINANCIAL_MIN_LEVEL,min_standards_required,,,"Map to `tender.participationConditions.economicRequiredStandards`" +/LEFTI/ECONOMIC_FINANCIAL_INFO,info_evaluating_weth_requir,,,"Add a `SelectionCriterion` object to the `tender.selectionCriteria` array. Map to `.description`, and set its '.type' to 'economicFinancial'" /LEFTI/TECHNICAL_CRITERIA_DOC,criteria_selection_docs,,"Add a `Document` object to the `tender.documents` array, set its `.type` to 'technicalCriteriaSelection', and set its `.id`." -/LEFTI/TECHNICAL_PROFESSIONAL_INFO,info_evaluating_weth_requir,,,"Map to `tender.participationConditions.technicalSelectionCritera`" /LEFTI/TECHNICAL_PROFESSIONAL_MIN_LEVEL,min_standards_required,,,"Map to `tender.participationConditions.technicalRequiredStandards`" +/LEFTI/TECHNICAL_PROFESSIONAL_INFO,info_evaluating_weth_requir,,,"Add a `SelectionCriterion` object to the `tender.selectionCriteria` array. Map to `.description`, and set its '.type' to 'technical'" /LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop,,,"Set `tender.participationConditions.hasReservedParticipation` to `true`" /LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program,,,Set `tender.contractTerms.hasReservedExecution` to `true` /LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,Set `tender.contractTerms.hasReservedToProfession` to `true` From 32ff59f49010da3349d72045bbb37851340c6e68 Mon Sep 17 00:00:00 2001 From: Colin Maudry Date: Wed, 28 Aug 2019 18:38:55 +0200 Subject: [PATCH 07/25] Added a .minimumLevel field to SelectionCriterion --- output/mapping/F01_2014.csv | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/output/mapping/F01_2014.csv b/output/mapping/F01_2014.csv index 7b28fa1d..d96dc564 100644 --- a/output/mapping/F01_2014.csv +++ b/output/mapping/F01_2014.csv @@ -89,11 +89,11 @@ xpath,label-key,index,comment,guidance /LEFTI,info_legal,III,,"The standard forms express exclusion grounds and selection criteria in this section as unstructured text. In the [introductory note](https://github.com/eForms/eForms/raw/master/20180604_eForms_consultation_introduction.docx) to its [eForms consultation](https://github.com/eForms/eForms), the European Commission proposes to create an extension to eForms to implement the [European Single Procurement Document (ESPD)](http://ec.europa.eu/growth/single-market/public-procurement/e-procurement/espd/), which expresses this information as structured data, following the model of the [Core Criterion and Core Evidence Vocabulary](https://joinup.ec.europa.eu/solution/core-criterion-and-core-evidence-vocabulary). With respect to OCDS, work on this section is postponed until either the extension to eForms is available or until the [ESPD Exchange Data Model](https://github.com/ESPD/ESPD-EDM) is stable." /LEFTI/SUITABILITY,info_evaluating_requir,,,"Add a `SelectionCriterion` object to the `tender.selectionCriteria` array. Map to `.description`, and set its '.type' to 'suitability'" /LEFTI/ECONOMIC_CRITERIA_DOC,criteria_selection_docs,,,"Add a `Document` object to the `tender.documents` array, set its `.type` to 'economicCriteriaSelection', and set its `.id`." -/LEFTI/ECONOMIC_FINANCIAL_MIN_LEVEL,min_standards_required,,,"Map to `tender.participationConditions.economicRequiredStandards`" /LEFTI/ECONOMIC_FINANCIAL_INFO,info_evaluating_weth_requir,,,"Add a `SelectionCriterion` object to the `tender.selectionCriteria` array. Map to `.description`, and set its '.type' to 'economicFinancial'" +/LEFTI/ECONOMIC_FINANCIAL_MIN_LEVEL,min_standards_required,,,""In the `SelectionCriterion` object whose `.type` equals 'economicFinancial', map to `.minimumLevel`" /LEFTI/TECHNICAL_CRITERIA_DOC,criteria_selection_docs,,"Add a `Document` object to the `tender.documents` array, set its `.type` to 'technicalCriteriaSelection', and set its `.id`." -/LEFTI/TECHNICAL_PROFESSIONAL_MIN_LEVEL,min_standards_required,,,"Map to `tender.participationConditions.technicalRequiredStandards`" /LEFTI/TECHNICAL_PROFESSIONAL_INFO,info_evaluating_weth_requir,,,"Add a `SelectionCriterion` object to the `tender.selectionCriteria` array. Map to `.description`, and set its '.type' to 'technical'" +/LEFTI/TECHNICAL_PROFESSIONAL_MIN_LEVEL,min_standards_required,,,"In the `SelectionCriterion` object whose `.type` equals 'technical', map to `.minimumLevel`" /LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop,,,"Set `tender.participationConditions.hasReservedParticipation` to `true`" /LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program,,,Set `tender.contractTerms.hasReservedExecution` to `true` /LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,Set `tender.contractTerms.hasReservedToProfession` to `true` From 0bfe324b0515aea10fdd2015eb3bb751529fcc30 Mon Sep 17 00:00:00 2001 From: Colin Maudry Date: Wed, 28 Aug 2019 18:39:22 +0200 Subject: [PATCH 08/25] hasReservedToProfession > isReservedToProfession --- output/mapping/F01_2014.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/output/mapping/F01_2014.csv b/output/mapping/F01_2014.csv index d96dc564..528b7e16 100644 --- a/output/mapping/F01_2014.csv +++ b/output/mapping/F01_2014.csv @@ -96,7 +96,7 @@ xpath,label-key,index,comment,guidance /LEFTI/TECHNICAL_PROFESSIONAL_MIN_LEVEL,min_standards_required,,,"In the `SelectionCriterion` object whose `.type` equals 'technical', map to `.minimumLevel`" /LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop,,,"Set `tender.participationConditions.hasReservedParticipation` to `true`" /LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program,,,Set `tender.contractTerms.hasReservedExecution` to `true` -/LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,Set `tender.contractTerms.hasReservedToProfession` to `true` +/LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,Set `tender.contractTerms.isReservedToProfession` to `true` /LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,Map to `tender.contractTerms.reservedToProfessionLawReference` /LEFTI/PERFORMANCE_CONDITIONS,other_conditions,III.2.2,,Map to `tender.contractTerms.termsPerformance` /LEFTI/PERFORMANCE_STAFF_QUALIFICATION,staff_responsible_indicate,,,Set `tender.contractTerms.hasObligationStaffQualificationInformation` to `true` From 55139fd2cc7bdcdfd82f9dcb38c404dfd248c562 Mon Sep 17 00:00:00 2001 From: Colin Maudry Date: Wed, 28 Aug 2019 20:24:48 +0200 Subject: [PATCH 09/25] Mapping to higher semantics https://github.com/open-contracting/european-union-support/pull/15#discussion_r318685594 --- output/mapping/F01_2014.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/output/mapping/F01_2014.csv b/output/mapping/F01_2014.csv index 528b7e16..f2835fc1 100644 --- a/output/mapping/F01_2014.csv +++ b/output/mapping/F01_2014.csv @@ -97,7 +97,7 @@ xpath,label-key,index,comment,guidance /LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop,,,"Set `tender.participationConditions.hasReservedParticipation` to `true`" /LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program,,,Set `tender.contractTerms.hasReservedExecution` to `true` /LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,Set `tender.contractTerms.isReservedToProfession` to `true` -/LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,Map to `tender.contractTerms.reservedToProfessionLawReference` +/LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,Map to `tender.contractTerms.reservedToProfession` /LEFTI/PERFORMANCE_CONDITIONS,other_conditions,III.2.2,,Map to `tender.contractTerms.termsPerformance` /LEFTI/PERFORMANCE_STAFF_QUALIFICATION,staff_responsible_indicate,,,Set `tender.contractTerms.hasObligationStaffQualificationInformation` to `true` /PROCEDURE,procedure,IV,,"" From a34362feb6af8b0e5530f9a7e587d4858f67df3e Mon Sep 17 00:00:00 2001 From: Colin Maudry Date: Wed, 28 Aug 2019 20:25:33 +0200 Subject: [PATCH 10/25] Aligning with eForms terminology --- output/mapping/F01_2014.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/output/mapping/F01_2014.csv b/output/mapping/F01_2014.csv index f2835fc1..5725cba9 100644 --- a/output/mapping/F01_2014.csv +++ b/output/mapping/F01_2014.csv @@ -99,7 +99,7 @@ xpath,label-key,index,comment,guidance /LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,Set `tender.contractTerms.isReservedToProfession` to `true` /LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,Map to `tender.contractTerms.reservedToProfession` /LEFTI/PERFORMANCE_CONDITIONS,other_conditions,III.2.2,,Map to `tender.contractTerms.termsPerformance` -/LEFTI/PERFORMANCE_STAFF_QUALIFICATION,staff_responsible_indicate,,,Set `tender.contractTerms.hasObligationStaffQualificationInformation` to `true` +/LEFTI/PERFORMANCE_STAFF_QUALIFICATION,staff_responsible_indicate,,,Set `tender.contractTerms.hasPerformingStaffQualification` to `true` /PROCEDURE,procedure,IV,,"" /PROCEDURE/PT_RESTRICTED,proctype_restricted,,,"Set `tender.procurementMethod` to 'selective', and set `tender.procurementMethodDetails` to 'Restricted procedure'" /PROCEDURE/PT_COMPETITIVE_NEGOTIATION,proctype_comp_negotiation,,,"Set `tender.procurementMethod` to 'selective', and set `tender.procurementMethodDetails` to 'Competitive procedure with negotiation'" From 394d16253682e0adb7a11fb2f06d035f26c16898 Mon Sep 17 00:00:00 2001 From: Colin Maudry Date: Wed, 28 Aug 2019 20:26:17 +0200 Subject: [PATCH 11/25] hasReservedToProfession => isReservedToProfession (F12) --- output/mapping/F12_2014.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/output/mapping/F12_2014.csv b/output/mapping/F12_2014.csv index 9efe2414..653bd973 100644 --- a/output/mapping/F12_2014.csv +++ b/output/mapping/F12_2014.csv @@ -53,7 +53,7 @@ xpath,label-key,index,comment,guidance /LEFTI,info_legal,III,,"The standard forms express exclusion grounds and selection criteria in this section as unstructured text. In the [introductory note](https://github.com/eForms/eForms/raw/master/20180604_eForms_consultation_introduction.docx) to its [eForms consultation](https://github.com/eForms/eForms), the European Commission proposes to create an extension to eForms to implement the [European Single Procurement Document (ESPD)](http://ec.europa.eu/growth/single-market/public-procurement/e-procurement/espd/), which expresses this information as structured data, following the model of the [Core Criterion and Core Evidence Vocabulary](https://joinup.ec.europa.eu/solution/core-criterion-and-core-evidence-vocabulary). With respect to OCDS, work on this section is postponed until either the extension to eForms is available or until the [ESPD Exchange Data Model](https://github.com/ESPD/ESPD-EDM) is stable." /LEFTI/CRITERIA_SELECTION,criteria_selection,III.1.10,,"" /LEFTI/PARTICULAR_PROFESSION,dc_indicate_profession,,,"Map to `tender.contractTerms.reservedToProfession`" -/LEFTI/NO_PARTICULAR_PROFESSION,_no,,,"Set `tender.participationConditions.hasReservedToProfession` to `false`" +/LEFTI/NO_PARTICULAR_PROFESSION,_no,,,"Set `tender.participationConditions.isReservedToProfession` to `false`" /PROCEDURE,procedure,IV,,"" /PROCEDURE/PT_OPEN,open,,,"Set `tender.procurementMethod` to 'open', and set `tender.procurementMethodDetails` to 'Open procedure'" /PROCEDURE/PT_RESTRICTED,type_restricted,,,"Set `tender.procurementMethod` to 'selective', and set `tender.procurementMethodDetails` to 'Restricted procedure'" From 07a8ce3be341b796e8818299f7801337241fa2e5 Mon Sep 17 00:00:00 2001 From: Colin Maudry Date: Wed, 28 Aug 2019 21:14:16 +0200 Subject: [PATCH 12/25] Switched to code lists for reserved contracts --- output/mapping/F01_2014.csv | 2 +- output/mapping/F21_2014.csv | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/output/mapping/F01_2014.csv b/output/mapping/F01_2014.csv index ab5b3ed4..5739720d 100644 --- a/output/mapping/F01_2014.csv +++ b/output/mapping/F01_2014.csv @@ -94,7 +94,7 @@ xpath,label-key,index,comment,guidance /LEFTI/TECHNICAL_CRITERIA_DOC,criteria_selection_docs,,"Add a `Document` object to the `tender.documents` array, set its `.type` to 'technicalCriteriaSelection', and set its `.id`." /LEFTI/TECHNICAL_PROFESSIONAL_INFO,info_evaluating_weth_requir,,,"Add a `SelectionCriterion` object to the `tender.selectionCriteria` array. Map to `.description`, and set its '.type' to 'technical'" /LEFTI/TECHNICAL_PROFESSIONAL_MIN_LEVEL,min_standards_required,,,"In the `SelectionCriterion` object whose `.type` equals 'technical', map to `.minimumLevel`" -/LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop,,,"Set `tender.participationConditions.hasReservedParticipation` to `true`" +/LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop,,,"Set `tender.participationConditions.reservedTo` to 'shelteredWorkshops'" /LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program,,,Set `tender.contractTerms.hasReservedExecution` to `true` /LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,Set `tender.contractTerms.isReservedToProfession` to `true` /LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,Map to `tender.contractTerms.reservedToProfession` diff --git a/output/mapping/F21_2014.csv b/output/mapping/F21_2014.csv index 87bdd121..0b1556b3 100644 --- a/output/mapping/F21_2014.csv +++ b/output/mapping/F21_2014.csv @@ -83,7 +83,7 @@ xpath,label-key,index,comment,guidance /LEFTI/RULES_CRITERIA,descr_brief_rules,,,"" /LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop,,,"" /LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program,,,Set `tender.contractTerms.reservedExecution` to `true` -/LEFTI/RESERVED_ORGANISATIONS_SERVICE_MISSION,reserved_public_mission,,,"Set `tender.participationConditions.hasReservedParticipationPublicService` to `true`" +/LEFTI/RESERVED_ORGANISATIONS_SERVICE_MISSION,reserved_public_mission,,,"Set `tender.participationConditions.reservedTo` to 'publicServiceMission'" /LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,"" /LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,"" /LEFTI/PERFORMANCE_CONDITIONS,other_conditions,III.2.2,,Map to `tender.contractTerms.termsPerformance` From 8450a6171ddab6a135e7c36936c71ec991c7538d Mon Sep 17 00:00:00 2001 From: Colin Maudry Date: Thu, 29 Aug 2019 14:38:11 +0200 Subject: [PATCH 13/25] Moving .hasPerformingStaffQualification from .contractTerms to .participationConditions --- output/mapping/F01_2014.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/output/mapping/F01_2014.csv b/output/mapping/F01_2014.csv index 5739720d..e8e56c2d 100644 --- a/output/mapping/F01_2014.csv +++ b/output/mapping/F01_2014.csv @@ -99,7 +99,7 @@ xpath,label-key,index,comment,guidance /LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,Set `tender.contractTerms.isReservedToProfession` to `true` /LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,Map to `tender.contractTerms.reservedToProfession` /LEFTI/PERFORMANCE_CONDITIONS,other_conditions,III.2.2,,Map to `tender.contractTerms.termsPerformance` -/LEFTI/PERFORMANCE_STAFF_QUALIFICATION,staff_responsible_indicate,,,Set `tender.contractTerms.hasPerformingStaffQualification` to `true` +/LEFTI/PERFORMANCE_STAFF_QUALIFICATION,staff_responsible_indicate,,,Set `tender.participationConditions.hasPerformingStaffQualification` to `true` /PROCEDURE,procedure,IV,,"" /PROCEDURE/PT_RESTRICTED,proctype_restricted,,,"Set `tender.procurementMethod` to 'selective', and set `tender.procurementMethodDetails` to 'Restricted procedure'" /PROCEDURE/PT_COMPETITIVE_NEGOTIATION,proctype_comp_negotiation,,,"Set `tender.procurementMethod` to 'selective', and set `tender.procurementMethodDetails` to 'Competitive procedure with negotiation'" From e11bf2473c830e9159802b6886cdad00e0b93642 Mon Sep 17 00:00:00 2001 From: Colin Maudry Date: Thu, 29 Aug 2019 14:39:49 +0200 Subject: [PATCH 14/25] .groupLegalFrom to .tendererLegalForm to match BT-761 --- output/mapping/F05_2014.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/output/mapping/F05_2014.csv b/output/mapping/F05_2014.csv index d2572c3d..a32b03aa 100644 --- a/output/mapping/F05_2014.csv +++ b/output/mapping/F05_2014.csv @@ -102,7 +102,7 @@ xpath,label-key,index,comment,guidance /LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program,,,Set `tender.contractTerms.reservedExecution` to `true` /LEFTI/DEPOSIT_GUARANTEE_REQUIRED,deposits_required,III.1.6,,"Map to `tender.participationConditions.depositsGuarantees`" /LEFTI/MAIN_FINANCING_CONDITION,financing_conditions,III.1.7,,Map to `tender.participationConditions.financingConditions` -/LEFTI/LEGAL_FORM,legal_form_taken,III.1.8,,"Map to `tender.participationConditions.groupLegalForm`" +/LEFTI/LEGAL_FORM,legal_form_taken,III.1.8,,"Map to `tender.participationConditions.tendererLegalForm`" /LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,"" /LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,"" /LEFTI/PERFORMANCE_CONDITIONS,other_conditions,III.2.2,,Map to `tender.contractTerms.termsPerformance` From 90d07ce9a31dc7eb86529db91b46dbb8d4a877bd Mon Sep 17 00:00:00 2001 From: Colin Maudry Date: Thu, 29 Aug 2019 15:38:30 +0200 Subject: [PATCH 15/25] .contractTerms.financialTerms --- output/mapping/F05_2014.csv | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/output/mapping/F05_2014.csv b/output/mapping/F05_2014.csv index a32b03aa..2caff315 100644 --- a/output/mapping/F05_2014.csv +++ b/output/mapping/F05_2014.csv @@ -100,8 +100,8 @@ xpath,label-key,index,comment,guidance /LEFTI/RULES_CRITERIA,descr_brief_rules,,,"" /LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop,,,"" /LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program,,,Set `tender.contractTerms.reservedExecution` to `true` -/LEFTI/DEPOSIT_GUARANTEE_REQUIRED,deposits_required,III.1.6,,"Map to `tender.participationConditions.depositsGuarantees`" -/LEFTI/MAIN_FINANCING_CONDITION,financing_conditions,III.1.7,,Map to `tender.participationConditions.financingConditions` +/LEFTI/DEPOSIT_GUARANTEE_REQUIRED,deposits_required,III.1.6,,"Set `tender.participationConditions.hasGuaranteeRequired` to `true`" +/LEFTI/MAIN_FINANCING_CONDITION,financing_conditions,III.1.7,,Map to `tender.contractTerms.financialTerms` /LEFTI/LEGAL_FORM,legal_form_taken,III.1.8,,"Map to `tender.participationConditions.tendererLegalForm`" /LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,"" /LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,"" From d8359d9746044ad1a029be901798eafdda822491 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Fri, 30 Aug 2019 09:29:16 -0400 Subject: [PATCH 16/25] F20: * Clarify VII.1 mapping. * Use "nearest earlier date" construction. * Rename durationRationale to periodRationale. * Link to "Get a translation" operation. --- output/mapping/F20_2014.csv | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/output/mapping/F20_2014.csv b/output/mapping/F20_2014.csv index 1f4da29d..b742f890 100644 --- a/output/mapping/F20_2014.csv +++ b/output/mapping/F20_2014.csv @@ -37,11 +37,11 @@ xpath,label-key,index,comment,guidance /OBJECT_CONTRACT/OBJECT_DESCR/DURATION,duration_contr_framew_dps_concess,II.2.7,,"" /OBJECT_CONTRACT/OBJECT_DESCR/DATE_START,starting,,,Map to the lot's `.contractPeriod.startDate` (PROPOSAL #19) /OBJECT_CONTRACT/OBJECT_DESCR/DATE_END,end,,,Map to the lot's `.contractPeriod.endDate` (PROPOSAL #19) -/OBJECT_CONTRACT/OBJECT_DESCR/JUSTIFICATION,framework_just_four,,,Map to `tender.techniques.frameworkAgreement.durationRationale` +/OBJECT_CONTRACT/OBJECT_DESCR/JUSTIFICATION,framework_just_four,,,Map to `tender.techniques.frameworkAgreement.periodRationale` /OBJECT_CONTRACT/OBJECT_DESCR/EU_PROGR_RELATED,_yes,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/budget_isEUFunded https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/budget_EUFunded,"Get the `Organization` object for the European Union; if none exists yet, [add a party](../operations#add-a-party), and set its `.name` to 'European Union'. Then, add 'funder' to its `.roles`.\n\nGet the `Finance` object for this project; if none exists yet, add a `Finance` object to the `planning.budget.finance` array, map to its `.description`, set its `.id`, set its `.financingParty.name` to 'European Union', and set its `.financingParty.id` to the party's `.id`. Then, add the lot's `.id` to its `.relatedLots`. (PROPOSAL #20)\n\nIn [future forms](https://github.com/eForms/eForms/issues/181#issuecomment-439861320), this field will be de-emphasized." /OBJECT_CONTRACT/OBJECT_DESCR/NO_EU_PROGR_RELATED,_no,,,"Discard. If there's no party with the role 'funder' and the name 'European Union', then the procurement isn't related to a project and/or programme financed by European Union funds." /PROCEDURE,procedure,IV,,"" -/PROCEDURE/NOTICE_NUMBER_OJ,number_oj,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/release_relatedNotice,"Discard. The *contract award notice concerning this contract* is the OCDS release with the same `ocid` as this release, with 'award' in its `tag`, and with an earlier `date` that is nearest that of this release." +/PROCEDURE/NOTICE_NUMBER_OJ,number_oj,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/release_relatedNotice,"Discard. The *contract award notice concerning this contract* is the OCDS release with the same `ocid` as this release, with 'award' in its `tag`, and with the nearest earlier `date` to this release." /AWARD_CONTRACT,award_of_contract_concess,V,,Add an `Award` object to the `awards` array /AWARD_CONTRACT/CONTRACT_NO,contract_number,,,Map to the award's `.id` /AWARD_CONTRACT/LOT_NO,lot_number,,,"If not set, let *Lot No* be '1'. Add to the award's `.relatedLots`." @@ -67,7 +67,7 @@ xpath,label-key,index,comment,guidance /AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/SME,_yes,,,Set the party's `.details.scale` to 'sme' /AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/NO_SME,_no,,,Set the party's `.details.scale` to 'large' /AWARD_CONTRACT/AWARDED_CONTRACT/VALUES,value_contract_concession_info,V.2.4,,"" -/AWARD_CONTRACT/AWARDED_CONTRACT/VALUES/VAL_TOTAL,value_total,,,"Discard. The *information on value of the contract/lot/concession (at the time of conclusion of the contract)* is available in the OCDS release with the same `ocid` as this release, with 'award' in its `tag`, and with an earlier `date` that is nearest that of this release." +/AWARD_CONTRACT/AWARDED_CONTRACT/VALUES/VAL_TOTAL,value_total,,,"Discard. The *information on value of the contract/lot/concession (at the time of conclusion of the contract)* is available in the OCDS release with the same `ocid` as this release, with 'award' in its `tag`, and with the nearest earlier `date` to this release." /AWARD_CONTRACT/AWARDED_CONTRACT/VALUES/VAL_TOTAL/@CURRENCY,currency,,,Discard as above /COMPLEMENTARY_INFO,info_complement,VI,,"" /COMPLEMENTARY_INFO/INFO_ADD,info_additional,VI.3,,Map to `description` @@ -86,7 +86,7 @@ xpath,label-key,index,comment,guidance /COMPLEMENTARY_INFO/ADDRESS_REVIEW_INFO,appeals_info,VI.4.4,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ReviewProcedure,"[Add a party](../operations#add-a-party), and add 'reviewContactPoint' to its `.roles` (PROPOSAL #25)" /COMPLEMENTARY_INFO/DATE_DISPATCH_NOTICE,date_dispatch,VI.5,,Map to `date` /MODIFICATIONS_CONTRACT,mod_to_contract,VII,,"" -/MODIFICATIONS_CONTRACT/DESCRIPTION_PROCUREMENT,mod_descr_after,VII.1,,"Get the `Contract` object in `contracts`, get the `Item` object in `tender.items`, copy the item to the contract's `.items`, and delete the contract's item's `.classification` and `.additionalClassifications`." +/MODIFICATIONS_CONTRACT/DESCRIPTION_PROCUREMENT,mod_descr_after,VII.1,,"Copy the `Item` object in `tender.items` to `.items` on the `Contract` object in `contracts`, and delete the contract's item's `.classification` and `.additionalClassifications`." /MODIFICATIONS_CONTRACT/DESCRIPTION_PROCUREMENT/CPV_MAIN,,VII.1.1,,"" /MODIFICATIONS_CONTRACT/DESCRIPTION_PROCUREMENT/CPV_MAIN/CPV_CODE,cpv_main,,,"Set the item's `.classification.scheme` to 'CPV', take the CPV code in the `CODE` attribute, and map to the item's `.classification.id`" /MODIFICATIONS_CONTRACT/DESCRIPTION_PROCUREMENT/CPV_MAIN/CPV_SUPPLEMENTARY_CODE,cpv_supplem,,,"For each `CODE` attribute, add a `Classification` object to the item's `.additionalClassifications` array, set its `.scheme` to 'CPVS', prefix by the *Main CPV code*, and map to its `.id`" @@ -112,10 +112,10 @@ xpath,label-key,index,comment,guidance /MODIFICATIONS_CONTRACT/DESCRIPTION_PROCUREMENT/CONTRACTORS/CONTRACTOR/NO_SME,_no,,,/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/NO_SME /MODIFICATIONS_CONTRACT/INFO_MODIFICATIONS,mod_info,VII.2,,"Add an `Amendment` object to the contract's `.amendments` array, and set its `.id`." /MODIFICATIONS_CONTRACT/INFO_MODIFICATIONS/SHORT_DESCR,mod_nature,,,Map to the amendment's `.description` -/MODIFICATIONS_CONTRACT/INFO_MODIFICATIONS/ADDITIONAL_NEED,mod_need_for_additional,,,"Prefix by the translation of ""Need for additional works, services or supplies by the original contractor/concessionaire: "", and map to the amendment's `.rationale`" -/MODIFICATIONS_CONTRACT/INFO_MODIFICATIONS/UNFORESEEN_CIRCUMSTANCE,mod_need_by_circums,,,"Prefix by the translation of ""Need for modification brought about by circumstances which a diligent contracting authority/entity could not foresee: "", and map to the amendment's `.rationale`" +/MODIFICATIONS_CONTRACT/INFO_MODIFICATIONS/ADDITIONAL_NEED,mod_need_for_additional,,,"Prefix by the [translation](../operations#get-a-translation) of ""Need for additional works, services or supplies by the original contractor/concessionaire: "", and map to the amendment's `.rationale`" +/MODIFICATIONS_CONTRACT/INFO_MODIFICATIONS/UNFORESEEN_CIRCUMSTANCE,mod_need_by_circums,,,"Prefix by the [translation](../operations#get-a-translation) of ""Need for modification brought about by circumstances which a diligent contracting authority/entity could not foresee: "", and map to the amendment's `.rationale`" /MODIFICATIONS_CONTRACT/INFO_MODIFICATIONS/VALUES,mod_price_increase,VII.2.3,,"" -/MODIFICATIONS_CONTRACT/INFO_MODIFICATIONS/VALUES/VAL_TOTAL_BEFORE,value_excl_vat,,,"Discard. The *updated total contract value before the modifications* is available in the OCDS release with the same `ocid` as this release, with 'contract' or 'contractUpdate' in its `tag`, and with an earlier `date` that is nearest that of this release." +/MODIFICATIONS_CONTRACT/INFO_MODIFICATIONS/VALUES/VAL_TOTAL_BEFORE,value_excl_vat,,,"Discard. The *updated total contract value before the modifications* is available in the OCDS release with the same `ocid` as this release, with 'contract' or 'contractUpdate' in its `tag`, and with the nearest earlier `date` to this release." /MODIFICATIONS_CONTRACT/INFO_MODIFICATIONS/VALUES/VAL_TOTAL_BEFORE/@CURRENCY,currency,,,Discard as above /MODIFICATIONS_CONTRACT/INFO_MODIFICATIONS/VALUES/VAL_TOTAL_AFTER,value_excl_vat,,,Map to the contract's `.value.amount` /MODIFICATIONS_CONTRACT/INFO_MODIFICATIONS/VALUES/VAL_TOTAL_AFTER/@CURRENCY,currency,,,Map to the contract's `.value.currency` From 500a9cd3e73bfe4846b3b8b9da2435246c8658ed Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Fri, 30 Aug 2019 09:36:13 -0400 Subject: [PATCH 17/25] Add scripts for mapping sheet for all extensions --- scripts/patched_release_schema.py | 36 +++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 scripts/patched_release_schema.py diff --git a/scripts/patched_release_schema.py b/scripts/patched_release_schema.py new file mode 100644 index 00000000..532c17dc --- /dev/null +++ b/scripts/patched_release_schema.py @@ -0,0 +1,36 @@ +""" +python scripts/patched_release_schema.py > release-schema-patched.json +ocdskit mapping-sheet --infer-required --extension-field extension release-schema-patched.json > mapping-sheet.csv +""" + +import json +import sys + +from ocdsextensionregistry import ExtensionRegistry, ProfileBuilder +from ocdsextensionregistry.util import get_latest_version + +extensions = {} + +url = 'https://raw.githubusercontent.com/open-contracting/extension_registry/master/extension_versions.csv' +for version in ExtensionRegistry(url): + if version.id not in extensions: + extensions[version.id] = [] + extensions[version.id].append(version) +urls = [get_latest_version(versions).download_url for versions in extensions.values()] + +# TODO: Uncomment extensions once PRs merged. +builder = ProfileBuilder('1__1__4', urls + [ + 'https://github.com/open-contracting-extensions/ocds_awardCriteria_extension/archive/master.zip', + # 'https://github.com/open-contracting-extensions/ocds_bidOpening_extension/archive/master.zip', + 'https://github.com/open-contracting-extensions/ocds_contractTerms_extension/archive/master.zip', + 'https://github.com/open-contracting-extensions/ocds_coveredBy_extension/archive/master.zip', + # 'https://github.com/open-contracting-extensions/ocds_eu_extension/archive/master.zip', + 'https://github.com/open-contracting-extensions/ocds_options_extension/archive/master.zip', + 'https://github.com/open-contracting-extensions/ocds_procedure_extension/archive/master.zip', + 'https://github.com/open-contracting-extensions/ocds_secondStageDescription_extension/archive/master.zip', + 'https://github.com/open-contracting-extensions/ocds_submissionTerms_extension/archive/master.zip', + 'https://github.com/open-contracting-extensions/ocds_techniques_extension/archive/master.zip', +]) + +schema = builder.patched_release_schema(extension_field='extension') +json.dump(schema, sys.stdout, ensure_ascii=False, indent=2, separators=(',', ': ')) From 3bb09e2eac6128536c5e0ce6fb40bb3bcaf4828d Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Fri, 30 Aug 2019 09:37:00 -0400 Subject: [PATCH 18/25] Update heredoc in scripts --- scripts/patched_release_schema.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/patched_release_schema.py b/scripts/patched_release_schema.py index 532c17dc..7d052cdb 100644 --- a/scripts/patched_release_schema.py +++ b/scripts/patched_release_schema.py @@ -1,6 +1,6 @@ """ -python scripts/patched_release_schema.py > release-schema-patched.json -ocdskit mapping-sheet --infer-required --extension-field extension release-schema-patched.json > mapping-sheet.csv +python scripts/patched_release_schema.py > scripts/release-schema-patched.json +ocdskit mapping-sheet --infer-required --extension-field extension release-schema-patched.json > scripts/mapping-sheet.csv """ import json From 00ddf5d70b07489715b6765fb4b8bd8f84d96fcf Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Fri, 30 Aug 2019 09:37:15 -0400 Subject: [PATCH 19/25] Ignore scripts outputs --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 02741904..6cc6697d 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,6 @@ source/* !source/Forms labels R2.09.csv source/TED_forms_templates_R2.0.8/*.txt source/TED_forms_templates_R2.0.9/*.txt +/scripts/*.csv +/scripts/*.json .~lock* From 0ba6ccf3211efc61e1cb3fa8ef579ae1ed115f01 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Fri, 30 Aug 2019 10:32:02 -0400 Subject: [PATCH 20/25] Change "See above" links to copy guidance --- lib/table_builder.rb | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/lib/table_builder.rb b/lib/table_builder.rb index e9e33eea..7921ae9d 100644 --- a/lib/table_builder.rb +++ b/lib/table_builder.rb @@ -74,13 +74,13 @@ def table(label=nil) def row(label, help_labels: [], index: nil, xpath: nil, value: nil, reference: nil, guidance: false) if xpath if value - @enum_targets[label] ||= xpath + @enum_targets[label] ||= [xpath, guidance] else - @elem_targets[label] ||= xpath + @elem_targets[label] ||= [xpath, guidance] end end if xpath && guidance - @guidances[xpath] ||= guidance + @guidances[xpath] ||= [label, guidance] end no_guidance = reference.nil? && (guidance == false || guidance == '') @@ -130,14 +130,33 @@ def row(label, help_labels: [], index: nil, xpath: nil, value: nil, reference: n # "OCDS guidance" cell. if reference if value - target = @enum_targets.fetch(label) + target, text = @enum_targets.fetch(label) else - target = @elem_targets.fetch(label) + target, text = @elem_targets.fetch(label) end - cell(link_to('See above', "##{target}")) + if text.start_with?('/') + text = @guidances.fetch(text)[1] + end + start_cell + paragraph(link_to("Same as #{t(label)} above", "##{target}")) + if !text.empty? + markdown(text) + end + end_cell elsif !no_guidance - if @guidances.include?(guidance) - cell(link_to('See above', "##{guidance}")) + if @guidances.key?(guidance) # guidance is an xpath + label_key, text = @guidances[guidance] + if label_key + infix = "#{t(label_key)}" + else + infix = "#{guidance}" + end + start_cell + paragraph(link_to("Same as #{infix} above", "##{guidance}")) + if !text.empty? + markdown(text) + end + end_cell elsif guidance start_cell markdown(guidance) From 7dbc9ebc587e155a1eefb2458743d4b36eaed7a4 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Fri, 30 Aug 2019 10:34:57 -0400 Subject: [PATCH 21/25] Move some mappings from additional.csv to ignore.csv. Add missing rows to ignore.csv. --- output/mapping/shared/additional.csv | 3 --- output/mapping/shared/ignore.csv | 6 +++++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/output/mapping/shared/additional.csv b/output/mapping/shared/additional.csv index bd786440..04f0e197 100644 --- a/output/mapping/shared/additional.csv +++ b/output/mapping/shared/additional.csv @@ -5,10 +5,7 @@ directive_201424,F15|F20,"Set `tender.legalBasis.scheme` to 'CELEX' and `tender. directive_201425,F12|F13|F15|F20,"Set `tender.legalBasis.scheme` to 'CELEX' and `tender.legalBasis.id` to '32014L0025'" directive_200981,F15,"Set `tender.legalBasis.scheme` to 'CELEX' and `tender.legalBasis.id` to '32009L0081'" framework_just_eight,F20,/OBJECT_CONTRACT/OBJECT_DESCR/JUSTIFICATION -eu_progr_ref,F01|F02|F03|F04|F05|F06|F07|F12|F13|F15|F20|F21|F22|F23|F24|F25,/OBJECT_CONTRACT/OBJECT_DESCR/EU_PROGR_RELATED framework_just_eight,F20,/MODIFICATIONS_CONTRACT/DESCRIPTION_PROCUREMENT/JUSTIFICATION -mod_descr_prevent_change,F20,/MODIFICATIONS_CONTRACT/INFO_MODIFICATIONS/ADDITIONAL_NEED -mod_descr_circums,F20,/MODIFICATIONS_CONTRACT/INFO_MODIFICATIONS/UNFORESEEN_CIRCUMSTANCE type_direct_award,T01, excl_rights_specs,T02,/LEFTI/EXCLUSIVE_RIGHTS_GRANTED notice_pin,F08,"Set `tender.legalBasis.scheme` to ['CELEX'](https://eur-lex.europa.eu/content/help/faq/intro.html#help8) and `tender.legalBasis.id` to '32014L0024' (PROPOSAL #14)" diff --git a/output/mapping/shared/ignore.csv b/output/mapping/shared/ignore.csv index 7dcde243..2b4433de 100644 --- a/output/mapping/shared/ignore.csv +++ b/output/mapping/shared/ignore.csv @@ -27,6 +27,7 @@ II.2.5,award_criteria,F15 ,award_criteria_descr_below,F24|F25 II.2.6,value_magnitude_estimated,F01|F02|F04|F05|F21|F22|F23|F24 ,renewals_subject,F02 +,_yes,F05 ,directive_201424,F20 ,directive_201425,F20 II.2.8,qs_duration,F07 @@ -38,6 +39,7 @@ II.2.11,options_info,F01|F02|F03|F04|F05|F06|F15 II.2.12,electronic_catalogue,F02|F05 II.2.13,eu_progr_info,F01|F02|F03|F04|F05|F06|F07|F12|F13|F15|F20|F21|F22|F23|F24|F25 ,eu_progr_related,F01|F02|F03|F04|F05|F06|F07|F12|F13|F15|F20|F21|F22|F23|F24|F25 +,eu_progr_ref,F01|F02|F03|F04|F05|F06|F07|F12|F13|F15|F20|F21|F22|F23|F24|F25 II.4,assets_essential,T02 III.1,conditions_particip,F01|F02|F04|F05|F07|F12|F21|F22|F23|F24 III.1,conditions_contract,T02 @@ -106,7 +108,7 @@ V.1,award_noaward_info,F03|F06|F13|F21|F22|F23|F25 ,award_noaward_concess,F23|F25 ,award_no_prizes,F13 V.2,award_of_contract,F03|F06|F21|F22 -V.2,award_of_concession,F25 +V.2,award_of_concession,F23|F25 V.2.2,award_offers_info,F20 ,awarded_group,F03|F06|F15 ,awarded_group_contract_concess,F20 @@ -136,6 +138,8 @@ VII.1.3,place_performance,F20 ,awarded_sme_contract_concess,F20 VII.2.1,mod_descr_mod,F20 VII.2.2,mod_reason,F20 +,mod_descr_prevent_change,F20 +,mod_descr_circums,F20 ,mod_value_before,F20 ,mod_value_after,F20 ,just_wo_pub,F03|F15|F21 From aabfeae9febbffbb745dc1a3ef66defa49b5fd9f Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Fri, 30 Aug 2019 15:17:06 -0400 Subject: [PATCH 22/25] Fix label:validate task to report short rows --- tasks/label.rake | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tasks/label.rake b/tasks/label.rake index 4aff48fc..a63429d8 100644 --- a/tasks/label.rake +++ b/tasks/label.rake @@ -42,6 +42,9 @@ namespace :label do task :validate do files('output/mapping/{}*.csv').each do |filename| CSV.foreach(filename, headers: true) do |row| + if row['guidance'].nil? && row['comment'] && !row['comment'].start_with?('https://') + raise "#{filename}: #{row['xpath']} short row!" + end if row.size != 5 raise "#{filename}: #{row['xpath']} unquoted comma!" end From d6ba5e6c037eb5334f301cf16cfe845fb3655c43 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Fri, 30 Aug 2019 15:19:59 -0400 Subject: [PATCH 23/25] Move instructions from script to readme. Skip ppp extension as it removes fields. --- README.md | 14 ++++++++++++++ scripts/patched_release_schema.py | 8 +++----- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 30f77eda..c1489b8a 100644 --- a/README.md +++ b/README.md @@ -158,6 +158,20 @@ You can now generate a table for each form, displaying, for each element and att for i in 01 02 03 04 05 06 07 08 12 13 14 15 20 21 22 23 24 25; rake table LANGUAGE=EN FILES=F$i > path/to/european-union/docs/F$i.md; end for i in 01 02; rake table LANGUAGE=EN FILES=MOVE FORM=T$i > path/to/european-union/docs/T$i.md; end +### Find fields for which to write extensions + +Generate a release schema with all extensions applied, except the PPP extension (which removes fields): + + python scripts/patched_release_schema.py > scripts/release-schema-patched.json + +Generate a CSV file with all fields from the extended schema, including a column for the extension name: + + ocdskit mapping-sheet --infer-required --extension-field extension scripts/release-schema-patched.json > scripts/mapping-sheet.csv + +Print a list of fields for which there are no extensions: + + python scripts/mapped_ocds_fields.py + ## Design * Label keys are expected to change less frequently than labels. The code therefore focuses on label keys. diff --git a/scripts/patched_release_schema.py b/scripts/patched_release_schema.py index 7d052cdb..3318026d 100644 --- a/scripts/patched_release_schema.py +++ b/scripts/patched_release_schema.py @@ -1,8 +1,3 @@ -""" -python scripts/patched_release_schema.py > scripts/release-schema-patched.json -ocdskit mapping-sheet --infer-required --extension-field extension release-schema-patched.json > scripts/mapping-sheet.csv -""" - import json import sys @@ -13,9 +8,12 @@ url = 'https://raw.githubusercontent.com/open-contracting/extension_registry/master/extension_versions.csv' for version in ExtensionRegistry(url): + if version.id == 'ppp': # PPP extension deletes core fields + continue if version.id not in extensions: extensions[version.id] = [] extensions[version.id].append(version) + urls = [get_latest_version(versions).download_url for versions in extensions.values()] # TODO: Uncomment extensions once PRs merged. From 71f782ce146c3d18a22c029f93d6770836b48c17 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Fri, 30 Aug 2019 15:20:23 -0400 Subject: [PATCH 24/25] Add script to report fields for which to write extensions --- requirements.txt | 2 + scripts/mapped_ocds_fields.py | 220 ++++++++++++++++++++++++++++++++++ 2 files changed, 222 insertions(+) create mode 100644 requirements.txt create mode 100644 scripts/mapped_ocds_fields.py diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 00000000..f5dccfd3 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +-e git+https://github.com/open-contracting/extension_registry.py.git#egg=ocdsextensionregistry +-e git+https://github.com/open-contracting/ocdskit.git#egg=ocdskit diff --git a/scripts/mapped_ocds_fields.py b/scripts/mapped_ocds_fields.py new file mode 100644 index 00000000..11cbba50 --- /dev/null +++ b/scripts/mapped_ocds_fields.py @@ -0,0 +1,220 @@ +import csv +import re +import sys +from glob import glob + +subjects = { + # Unambiguous + 'award': 'awards', + 'contract': 'contracts', + 'lot': 'tender/lots', + 'party': 'parties', + 'statistic': 'bids/statistics', + + # Ambiguous + 'amendment': { + 'CHANGES': 'tender/amendments', + 'MODIFICATIONS_CONTRACT': 'contracts/amendments', + }, + 'classification': { + 'CONTRACTING_BODY': 'parties/details/classifications', + 'PROCEDURE': 'tender/procurementMethodRationaleCodes', + }, + 'criterion': { + 'LEFTI': 'tender/selectionCriteria/criteria', + 'OBJECT_CONTRACT': 'tender/lots/awardCriteria/criteria', + }, + 'item': { + 'MODIFICATIONS_CONTRACT': 'contracts/items', + 'OBJECT_CONTRACT': 'tender/items', + }, +} + +unknowns = { + # Unambiguous + '.additionalContactPoints': 'parties', + '.awardID': 'contracts', + '.countryCode': 'parties/address', + '.details.classifications': 'parties', + '.documentType': 'tender/documents', + '.financingParty.id': 'planning/budget/finance', + '.financingParty.name': 'planning/budget/finance', + '.identifier.id': 'parties', + '.identifier.legalName': 'parties', + '.identifier.scheme': 'parties', + '.measure': 'bids/statistics', # metrics extension not used + '.minimum': 'tender/selectionCriteria/criteria', + '.roles': 'parties', + '.secondStage.maximumCandidates': 'tender/lots', + '.secondStage.minimumCandidates': 'tender/lots', + '.suppliers': 'awards', # contract suppliers extension not used + + # Ambiguous + '.additionalClassifications': { + 'MODIFICATIONS_CONTRACT': 'contracts/items', + }, + '.description': { + '/LEFTI/ECONOMIC_FINANCIAL_INFO': 'tender/selectionCriteria/criteria', + '/LEFTI/SUITABILITY': 'tender/selectionCriteria/criteria', + '/LEFTI/TECHNICAL_PROFESSIONAL_INFO': 'tender/selectionCriteria/criteria', + '/OBJECT_CONTRACT/OBJECT_DESCR/EU_PROGR_RELATED': 'planning/budget/finance', + }, + '.id': { + # Root + 'CHANGES': 'tender/amendments', + 'LEFTI': 'tender/documents', + 'PROCEDURE': 'tender/procurementMethodRationaleCodes', + # XPath + '/AWARD_CONTRACT/AWARDED_CONTRACT': 'contracts', + '/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/ADDRESS_CONTRACTOR': 'awards/suppliers', + '/AWARD_CONTRACT/AWARDED_CONTRACT/TENDERS/NB_TENDERS_RECEIVED': 'bids/statistics', + '/AWARD_CONTRACT/AWARDED_CONTRACT/TENDERS/NB_TENDERS_RECEIVED_EMEANS': 'bids/statistics', + '/AWARD_CONTRACT/AWARDED_CONTRACT/TENDERS/NB_TENDERS_RECEIVED_NON_EU': 'bids/statistics', + '/AWARD_CONTRACT/AWARDED_CONTRACT/TENDERS/NB_TENDERS_RECEIVED_OTHER_EU': 'bids/statistics', + '/AWARD_CONTRACT/AWARDED_CONTRACT/TENDERS/NB_TENDERS_RECEIVED_SME': 'bids/statistics', + '/AWARD_CONTRACT/AWARDED_CONTRACT/VALUES/VAL_RANGE_TOTAL/HIGH': 'bids/statistics', + '/AWARD_CONTRACT/AWARDED_CONTRACT/VALUES/VAL_RANGE_TOTAL/LOW': 'bids/statistics', + '/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY': 'parties', + '/CONTRACTING_BODY/DOCUMENT_RESTRICTED': 'tender/participationFees', + '/CONTRACTING_BODY/CA_ACTIVITY': 'parties/details/classifications', + '/CONTRACTING_BODY/CA_ACTIVITY/@VALUE': 'parties/details/classifications', + '/CONTRACTING_BODY/CA_TYPE': 'parties/details/classifications', + '/CONTRACTING_BODY/CA_TYPE/@VALUE': 'parties/details/classifications', + '/CONTRACTING_BODY/CE_ACTIVITY': 'parties/details/classifications', + '/CONTRACTING_BODY/CE_ACTIVITY/@VALUE': 'parties/details/classifications', + '/MODIFICATIONS_CONTRACT/DESCRIPTION_PROCUREMENT/CONTRACTORS/CONTRACTOR/ADDRESS_CONTRACTOR': 'awards/suppliers', # noqa + '/MODIFICATIONS_CONTRACT/DESCRIPTION_PROCUREMENT/CPV_ADDITIONAL/CPV_CODE': 'contracts/items/additionalClassifications', # noqa + '/MODIFICATIONS_CONTRACT/DESCRIPTION_PROCUREMENT/CPV_ADDITIONAL/CPV_SUPPLEMENTARY_CODE': 'contracts/items/additionalClassifications', # noqa + '/MODIFICATIONS_CONTRACT/DESCRIPTION_PROCUREMENT/CPV_MAIN/CPV_SUPPLEMENTARY_CODE': 'contracts/items/additionalClassifications', # noqa + '/MODIFICATIONS_CONTRACT/INFO_MODIFICATIONS': 'contracts/amendments', + '/OBJECT_CONTRACT/CPV_MAIN/CPV_SUPPLEMENTARY_CODE': 'tender/items/additionalClassifications', + '/OBJECT_CONTRACT/OBJECT_DESCR/CPV_ADDITIONAL/CPV_CODE': 'tender/items/additionalClassifications', + '/OBJECT_CONTRACT/OBJECT_DESCR/CPV_ADDITIONAL/CPV_SUPPLEMENTARY_CODE': 'tender/items/additionalClassifications', # noqa + '/OBJECT_CONTRACT/OBJECT_DESCR/EU_PROGR_RELATED': 'planning/budget/finance', + '/OBJECT_CONTRACT/VAL_RANGE_TOTAL/HIGH': 'bids/statistics', + '/OBJECT_CONTRACT/VAL_RANGE_TOTAL/LOW': 'bids/statistics', + '/RESULTS/AWARDED_PRIZE': 'contracts', + '/RESULTS/AWARDED_PRIZE/PARTICIPANTS/NB_PARTICIPANTS': 'bids/statistics', + '/RESULTS/AWARDED_PRIZE/PARTICIPANTS/NB_PARTICIPANTS_OTHER_EU': 'bids/statistics', + '/RESULTS/AWARDED_PRIZE/PARTICIPANTS/NB_PARTICIPANTS_SME': 'bids/statistics', + '/RESULTS/AWARDED_PRIZE/WINNERS/WINNER/ADDRESS_WINNER': 'awards/suppliers', + }, + '.items': { + 'MODIFICATIONS_CONTRACT': 'contracts', + }, + '.name': { + # Root + 'AWARD_CONTRACT': 'awards/suppliers', + 'CONTRACTING_BODY': 'buyer', + 'MODIFICATIONS_CONTRACT': 'awards/suppliers', + 'OBJECT_CONTRACT': 'parties', + 'PROCEDURE': 'tender/procurementMethodRationaleCodes', + 'RESULTS': 'awards/suppliers', + # XPath + '/CONTRACTING_BODY/CA_ACTIVITY': 'parties/details/classifications', + '/CONTRACTING_BODY/CA_ACTIVITY/@VALUE': 'parties/details/classifications', + '/CONTRACTING_BODY/CA_ACTIVITY_OTHER': 'parties/details/classifications', + '/CONTRACTING_BODY/CA_TYPE': 'parties/details/classifications', + '/CONTRACTING_BODY/CA_TYPE/@VALUE': 'parties/details/classifications', + '/CONTRACTING_BODY/CA_TYPE_OTHER': 'parties/details/classifications', + '/CONTRACTING_BODY/CE_ACTIVITY': 'parties/details/classifications', + '/CONTRACTING_BODY/CE_ACTIVITY/@VALUE': 'parties/details/classifications', + '/CONTRACTING_BODY/CE_ACTIVITY_OTHER': 'parties/details/classifications', + }, + '.relatedLot': { + 'AWARD_CONTRACT': 'bids/statistics', + 'RESULTS': 'bids/statistics', + }, + '.relatedLots': { + 'AWARD_CONTRACT': 'awards', + 'OBJECT_CONTRACT': 'planning/budget/finance', + }, + '.scheme': { + 'MODIFICATIONS_CONTRACT': 'contracts/items/additionalClassifications', + 'OBJECT_CONTRACT': 'tender/items/additionalClassifications', + }, + '.status': { + 'AWARD_CONTRACT': 'contracts', + 'RESULTS': 'contracts', + }, + '.title': { + 'AWARD_CONTRACT': 'contracts', + }, + '.type': { + # Root + 'CONTRACTING_BODY': 'tender/participationFees', + 'OBJECT_CONTRACT': 'tender/lots/awardCriteria/criteria', + # XPath + '/LEFTI/ECONOMIC_FINANCIAL_INFO': 'tender/selectionCriteria/criteria', + '/LEFTI/ECONOMIC_FINANCIAL_MIN_LEVEL': 'tender/selectionCriteria/criteria', + '/LEFTI/SUITABILITY': 'tender/selectionCriteria/criteria', + '/LEFTI/TECHNICAL_PROFESSIONAL_INFO': 'tender/selectionCriteria/criteria', + '/LEFTI/TECHNICAL_PROFESSIONAL_MIN_LEVEL': 'tender/selectionCriteria/criteria', + }, + '.value': { + 'AWARD_CONTRACT': 'bids/statistics', + 'OBJECT_CONTRACT': 'bids/statistics', + 'RESULTS': 'bids/statistics', + }, +} + +unhandled = set() +paths = set() + + +def report(path, row): + value = (path, row.get('xpath')) + if value not in unhandled: + sys.stderr.write('unhandled: {} ({}: {})\n'.format(path, row.get('xpath'), row['guidance'])) + unhandled.add(value) + + +for pattern in ('output/mapping/*.csv', 'output/mapping/*/*.csv'): + for filename in glob(pattern): + with open(filename) as f: + reader = csv.DictReader(f) + for row in reader: + if row.get('guidance'): + for match in re.finditer(r"(?:([a-z]+)'s )?\[?`([^`]+)`", row['guidance']): + path = match.group(2) + if path in ('true', 'false', 'value'): # JSON boolean, exceptional case + continue + if re.search(r'^[A-Z][a-z][A-Za-z]+$', path): # JSON Schema definition + continue + if re.search(r'^(/[A-Z_]+)+$', path): # XPath + continue + if re.search(r'^[A-Z_]+$', path): # XML element + continue + + subject = match.group(1) + + prefix = '' + if subject: + prefix = subjects[subject] + elif path in unknowns: + prefix = unknowns[path] + elif path[0] == '.': + report(path, row) + continue + + if isinstance(prefix, dict): + xpath = row.get('xpath', '/') + root = xpath.split('/', 2)[1] + if root in prefix: + key = root + else: + key = xpath + try: + prefix = prefix[key] + except KeyError: + report(path, row) + continue + + path = prefix + path + paths.add(path.replace('.', '/')) + +with open('scripts/mapping-sheet.csv') as f: + seen = [row['path'] for row in csv.DictReader(f)] + for path in sorted(list(paths)): + if path not in seen: + print(path) From f08f6f3bc717b05519d93c0e8b0c831b72a492d1 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Fri, 30 Aug 2019 19:07:55 -0400 Subject: [PATCH 25/25] Review PR Field name changes: * Fix `type` to `documentType` * Rename `minimumLevel` to `minimum`, to be more flexible for future criteria, which might set minimum values, percentages, ratios, etc. * Rename `participationConditions` to `otherRequirements` * As mentioned by Giampaollo Sellitto in https://github.com/eForms/eForms/issues/296#issuecomment-472861002, "participation criteria" or "participation conditions" are easy to confuse with "selection criteria" from a legal perspective. This is the reason ESPD uses "other criteria" and eForms uses "other requirements". * Rename `reservedTo` to `reservedParticipation`, mirroring `hasReservedExecution` * Rename `termsPerformance` to `performanceTerms`, to put words in regular order * Rename `hasPerformingStaffQualification` to `requiresStaffNamesQualifications`, for clarity * Rename `objectiveRulesCriteria` to `reductionCriteria`, see 2014/24/EU Article 65 * Rename `hasGuaranteeRequired` to `hasRequiredGuarantees`, to put words in regular order, and to allow multiple guarantees (like in some countries) https://github.com/open-contracting/standard/issues/900 Modelling changes: * Change `selectionCriteria` to an object, with a `criteria` array as a sub-field, like with `awardCriteria` * Remove `isReservedToProfession` and rename `reservedToProfession` to `reservedExecution`, then use `hasReservedExecution` and `reservedExecution` for both sheltered employment programmes and professions * Move `hasRequiredGuarantees` from `otherRequirements` to `submissionTerms`, see eForms * Move `tendererLegalForm` from `otherRequirements` to `contractTerms`, see eForms Code changes: * Rename 'economicFinancial' to 'economic', to be consistent with the new `documentType.csv` code * Rename 'economicCriteriaSelection' to 'economicSelectionCriteria', to put words in regular order * Rename 'technicalCriteriaSelection' to 'technicalSelectionCriteria', to put words in regular order * Rename 'publicServiceMission' to 'publicServiceMissionOrganization' and 'shelteredWorkshops' to 'shelteredWorkshop', so that codes describe a singular organization type All forms: * Copy mappings across forms Other changes not related to this pull request: * Rename `maximumNumberParticipants` to `maximumParticipants` * Rename `durationRationale` to `periodRationale` * Fix `electronicInvoicing` to `electronicInvoicingPolicy` * Fix `electronicCatalogue` to `electronicCataloguePolicy` * Use "nearest earlier `date`" construction * Fix single quotes instead of backticks for code * Remove trailing whitespace --- output/mapping/F01_2014.csv | 38 ++++++++++++++-------------- output/mapping/F02_2014.csv | 44 ++++++++++++++++---------------- output/mapping/F03_2014.csv | 4 +-- output/mapping/F04_2014.csv | 42 +++++++++++++++---------------- output/mapping/F05_2014.csv | 50 ++++++++++++++++++------------------- output/mapping/F06_2014.csv | 6 ++--- output/mapping/F07_2014.csv | 24 +++++++++--------- output/mapping/F08_2014.csv | 2 +- output/mapping/F12_2014.csv | 10 ++++---- output/mapping/F13_2014.csv | 6 ++--- output/mapping/F14_2014.csv | 2 +- output/mapping/F15_2014.csv | 14 +++++------ output/mapping/F21_2014.csv | 26 +++++++++---------- output/mapping/F22_2014.csv | 32 ++++++++++++------------ output/mapping/F23_2014.csv | 28 ++++++++++----------- output/mapping/F24_2014.csv | 32 ++++++++++++------------ output/mapping/F25_2014.csv | 10 ++++---- output/mapping/MOVE.csv | 4 +-- 18 files changed, 187 insertions(+), 187 deletions(-) diff --git a/output/mapping/F01_2014.csv b/output/mapping/F01_2014.csv index e8e56c2d..f368423a 100644 --- a/output/mapping/F01_2014.csv +++ b/output/mapping/F01_2014.csv @@ -86,28 +86,28 @@ xpath,label-key,index,comment,guidance /OBJECT_CONTRACT/OBJECT_DESCR/NO_EU_PROGR_RELATED,_no,,,"Discard. If there's no party with the role 'funder' and the name 'European Union', then the procurement isn't related to a project and/or programme financed by European Union funds." /OBJECT_CONTRACT/OBJECT_DESCR/INFO_ADD,info_additional,II.2.14,,"Append to the lot's `.description`, and append to the item's `.description`\n\nThis results in a loss of structure. (WARNING #28)" /OBJECT_CONTRACT/DATE_PUBLICATION_NOTICE,date_of_contract_notice,II.3,,Map to `tender.communication.futureNoticeDate` -/LEFTI,info_legal,III,,"The standard forms express exclusion grounds and selection criteria in this section as unstructured text. In the [introductory note](https://github.com/eForms/eForms/raw/master/20180604_eForms_consultation_introduction.docx) to its [eForms consultation](https://github.com/eForms/eForms), the European Commission proposes to create an extension to eForms to implement the [European Single Procurement Document (ESPD)](http://ec.europa.eu/growth/single-market/public-procurement/e-procurement/espd/), which expresses this information as structured data, following the model of the [Core Criterion and Core Evidence Vocabulary](https://joinup.ec.europa.eu/solution/core-criterion-and-core-evidence-vocabulary). With respect to OCDS, work on this section is postponed until either the extension to eForms is available or until the [ESPD Exchange Data Model](https://github.com/ESPD/ESPD-EDM) is stable." -/LEFTI/SUITABILITY,info_evaluating_requir,,,"Add a `SelectionCriterion` object to the `tender.selectionCriteria` array. Map to `.description`, and set its '.type' to 'suitability'" -/LEFTI/ECONOMIC_CRITERIA_DOC,criteria_selection_docs,,,"Add a `Document` object to the `tender.documents` array, set its `.type` to 'economicCriteriaSelection', and set its `.id`." -/LEFTI/ECONOMIC_FINANCIAL_INFO,info_evaluating_weth_requir,,,"Add a `SelectionCriterion` object to the `tender.selectionCriteria` array. Map to `.description`, and set its '.type' to 'economicFinancial'" -/LEFTI/ECONOMIC_FINANCIAL_MIN_LEVEL,min_standards_required,,,""In the `SelectionCriterion` object whose `.type` equals 'economicFinancial', map to `.minimumLevel`" -/LEFTI/TECHNICAL_CRITERIA_DOC,criteria_selection_docs,,"Add a `Document` object to the `tender.documents` array, set its `.type` to 'technicalCriteriaSelection', and set its `.id`." -/LEFTI/TECHNICAL_PROFESSIONAL_INFO,info_evaluating_weth_requir,,,"Add a `SelectionCriterion` object to the `tender.selectionCriteria` array. Map to `.description`, and set its '.type' to 'technical'" -/LEFTI/TECHNICAL_PROFESSIONAL_MIN_LEVEL,min_standards_required,,,"In the `SelectionCriterion` object whose `.type` equals 'technical', map to `.minimumLevel`" -/LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop,,,"Set `tender.participationConditions.reservedTo` to 'shelteredWorkshops'" -/LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program,,,Set `tender.contractTerms.hasReservedExecution` to `true` -/LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,Set `tender.contractTerms.isReservedToProfession` to `true` -/LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,Map to `tender.contractTerms.reservedToProfession` -/LEFTI/PERFORMANCE_CONDITIONS,other_conditions,III.2.2,,Map to `tender.contractTerms.termsPerformance` -/LEFTI/PERFORMANCE_STAFF_QUALIFICATION,staff_responsible_indicate,,,Set `tender.participationConditions.hasPerformingStaffQualification` to `true` +/LEFTI,info_legal,III,,"The standard forms express exclusion grounds and selection criteria in this section as unstructured text. In the introductory note to its [eForms consultation](https://github.com/eForms/eForms), the European Commission had proposed to create an extension to eForms to implement the [European Single Procurement Document (ESPD)](http://ec.europa.eu/growth/single-market/public-procurement/e-procurement/espd/) [Exchange Data Model](https://github.com/ESPD/ESPD-EDM), which expresses this information as structured data, following the model of the [Core Criterion and Core Evidence Vocabulary](https://joinup.ec.europa.eu/solution/core-criterion-and-core-evidence-vocabulary)." +/LEFTI/SUITABILITY,info_evaluating_requir,,,"Add a `SelectionCriterion` object to the `tender.selectionCriteria.criteria` array, set its `.type` to 'suitability', and map to its `.description`." +/LEFTI/ECONOMIC_CRITERIA_DOC,criteria_selection_docs,,,"Add a `Document` object to the `tender.documents` array, set its `.documentType` to 'economicSelectionCriteria', and set its `.id`." +/LEFTI/ECONOMIC_FINANCIAL_INFO,info_evaluating_weth_requir,,,"Add a `SelectionCriterion` object to the `tender.selectionCriteria.criteria` array, set its `.type` to 'economic', and map to its `.description`." +/LEFTI/ECONOMIC_FINANCIAL_MIN_LEVEL,min_standards_required,,,"Get the `SelectionCriterion` object whose `.type` is 'economic', and map to its `.minimum`" +/LEFTI/TECHNICAL_CRITERIA_DOC,criteria_selection_docs,,,"Add a `Document` object to the `tender.documents` array, set its `.documentType` to 'technicalSelectionCriteria', and set its `.id`." +/LEFTI/TECHNICAL_PROFESSIONAL_INFO,info_evaluating_weth_requir,,,"Add a `SelectionCriterion` object to the `tender.selectionCriteria.criteria` array, set its `.type` to 'technical', and map to its `.description`." +/LEFTI/TECHNICAL_PROFESSIONAL_MIN_LEVEL,min_standards_required,,,"Get the `SelectionCriterion` object whose `.type` is 'technical', and map to its `.minimum`" +/LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop,,,"Set `tender.otherRequirements.reservedParticipation` to 'shelteredWorkshop'" +/LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program,,,"Set `tender.contractTerms.hasReservedExecution` to `true`, and set `tender.contractTerms.reservedExecution` to 'Sheltered employment programmes'" +/LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,Set `tender.contractTerms.hasReservedExecution` to `true` +/LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,Map to `tender.contractTerms.reservedExecution` +/LEFTI/PERFORMANCE_CONDITIONS,other_conditions,III.2.2,,Map to `tender.contractTerms.performanceTerms` +/LEFTI/PERFORMANCE_STAFF_QUALIFICATION,staff_responsible_indicate,,,Set `tender.otherRequirements.requiresStaffNamesQualifications` to `true` /PROCEDURE,procedure,IV,,"" /PROCEDURE/PT_RESTRICTED,proctype_restricted,,,"Set `tender.procurementMethod` to 'selective', and set `tender.procurementMethodDetails` to 'Restricted procedure'" /PROCEDURE/PT_COMPETITIVE_NEGOTIATION,proctype_comp_negotiation,,,"Set `tender.procurementMethod` to 'selective', and set `tender.procurementMethodDetails` to 'Competitive procedure with negotiation'" /PROCEDURE/FRAMEWORK,notice_involves_framework,,,Set `tender.techniques.hasFrameworkAgreement` to `true` -/PROCEDURE/FRAMEWORK/SEVERAL_OPERATORS,framework_several,,,"If *Envisaged maximum number of participants to the framework agreement* isn't set, set `tender.techniques.frameworkAgreement.maximumNumberParticipants` to 1e9999 (which parses to infinity)" -/PROCEDURE/FRAMEWORK/NB_PARTICIPANTS,framework_particip_envis,,,Map to `tender.techniques.frameworkAgreement.maximumNumberParticipants` -/PROCEDURE/FRAMEWORK/SINGLE_OPERATOR,framework_single,,,Set `tender.techniques.frameworkAgreement.maximumNumberParticipants` to 1 -/PROCEDURE/FRAMEWORK/JUSTIFICATION,framework_just_four,,,Map to `tender.techniques.frameworkAgreement.durationRationale` +/PROCEDURE/FRAMEWORK/SEVERAL_OPERATORS,framework_several,,,"If *Envisaged maximum number of participants to the framework agreement* isn't set, set `tender.techniques.frameworkAgreement.maximumParticipants` to 1e9999 (which parses to infinity)" +/PROCEDURE/FRAMEWORK/NB_PARTICIPANTS,framework_particip_envis,,,Map to `tender.techniques.frameworkAgreement.maximumParticipants` +/PROCEDURE/FRAMEWORK/SINGLE_OPERATOR,framework_single,,,Set `tender.techniques.frameworkAgreement.maximumParticipants` to 1 +/PROCEDURE/FRAMEWORK/JUSTIFICATION,framework_just_four,,,Map to `tender.techniques.frameworkAgreement.periodRationale` /PROCEDURE/DPS,notice_involves_dps,,,Set `tender.techniques.hasDynamicPurchasingSystem` to `true` /PROCEDURE/DPS_ADDITIONAL_PURCHASERS,dps_purchasers,,,Set `tender.techniques.dynamicPurchasingSystem.type` to 'open' /PROCEDURE/EAUCTION_USED,eauction_will_used,,,Set `tender.techniques.hasElectronicAuction` to `true` @@ -121,7 +121,7 @@ xpath,label-key,index,comment,guidance /PROCEDURE/DATE_AWARD_SCHEDULED,award_scheduled,IV.2.5,,Map to `tender.awardPeriod.startDate` /COMPLEMENTARY_INFO,info_complement,VI,,"" /COMPLEMENTARY_INFO/EORDERING,eordering_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows,Set `tender.contractTerms.hasElectronicOrdering` to `true` -/COMPLEMENTARY_INFO/EINVOICING,einvoicing_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows https://github.com/eForms/eForms/issues/88,Set `tender.contractTerms.electronicInvoicing` to 'allowed' +/COMPLEMENTARY_INFO/EINVOICING,einvoicing_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows https://github.com/eForms/eForms/issues/88,Set `tender.contractTerms.electronicInvoicingPolicy` to 'allowed' /COMPLEMENTARY_INFO/EPAYMENT,epayment_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows https://github.com/eForms/eForms/issues/88,Set `tender.contractTerms.hasElectronicPayment` to `true` /COMPLEMENTARY_INFO/INFO_ADD,info_additional,VI.3,,Map to `description` /COMPLEMENTARY_INFO/ADDRESS_REVIEW_BODY,appeals_body,VI.4.1,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ReviewProcedure,"[Add a party](../operations#add-a-party), and add 'reviewBody' to its `.roles`" diff --git a/output/mapping/F02_2014.csv b/output/mapping/F02_2014.csv index f0757a43..92d809be 100644 --- a/output/mapping/F02_2014.csv +++ b/output/mapping/F02_2014.csv @@ -87,24 +87,24 @@ xpath,label-key,index,comment,guidance /OBJECT_CONTRACT/OBJECT_DESCR/OPTIONS,_yes,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/lot_Options,Set the lot's `.hasOptions` to `true` (PROPOSAL #21) /OBJECT_CONTRACT/OBJECT_DESCR/OPTIONS_DESCR,options_descr,,,Map to the lot's `.options.description` (PROPOSAL #21) /OBJECT_CONTRACT/OBJECT_DESCR/NO_OPTIONS,_no,,,Set the lot's `.hasOptions` to `false` -/OBJECT_CONTRACT/OBJECT_DESCR/ECATALOGUE_REQUIRED,electronic_catalogue_required,,,Set the lot's `.submissionTerms.electronicCatalogue` to 'required'. +/OBJECT_CONTRACT/OBJECT_DESCR/ECATALOGUE_REQUIRED,electronic_catalogue_required,,,Set the lot's `.submissionTerms.electronicCataloguePolicy` to 'required'. /OBJECT_CONTRACT/OBJECT_DESCR/EU_PROGR_RELATED,_yes,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/budget_isEUFunded https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/budget_EUFunded,"Get the `Organization` object for the European Union; if none exists yet, [add a party](../operations#add-a-party), and set its `.name` to 'European Union'. Then, add 'funder' to its `.roles`.\n\nGet the `Finance` object for this project; if none exists yet, add a `Finance` object to the `planning.budget.finance` array, map to its `.description`, set its `.id`, set its `.financingParty.name` to 'European Union', and set its `.financingParty.id` to the party's `.id`. Then, add the lot's `.id` to its `.relatedLots`. (PROPOSAL #20)\n\nIn [future forms](https://github.com/eForms/eForms/issues/181#issuecomment-439861320), this field will be de-emphasized." /OBJECT_CONTRACT/OBJECT_DESCR/NO_EU_PROGR_RELATED,_no,,,"Discard. If there's no party with the role 'funder' and the name 'European Union', then the procurement isn't related to a project and/or programme financed by European Union funds." /OBJECT_CONTRACT/OBJECT_DESCR/INFO_ADD,info_additional,II.2.14,,"Append to the lot's `.description`, and append to the item's `.description`\n\nThis results in a loss of structure. (WARNING #28)" -/LEFTI,info_legal,III,,"The standard forms express exclusion grounds and selection criteria in this section as unstructured text. In the [introductory note](https://github.com/eForms/eForms/raw/master/20180604_eForms_consultation_introduction.docx) to its [eForms consultation](https://github.com/eForms/eForms), the European Commission proposes to create an extension to eForms to implement the [European Single Procurement Document (ESPD)](http://ec.europa.eu/growth/single-market/public-procurement/e-procurement/espd/), which expresses this information as structured data, following the model of the [Core Criterion and Core Evidence Vocabulary](https://joinup.ec.europa.eu/solution/core-criterion-and-core-evidence-vocabulary). With respect to OCDS, work on this section is postponed until either the extension to eForms is available or until the [ESPD Exchange Data Model](https://github.com/ESPD/ESPD-EDM) is stable." -/LEFTI/SUITABILITY,info_evaluating_requir,,,"" -/LEFTI/ECONOMIC_CRITERIA_DOC,criteria_selection_docs,,,"" -/LEFTI/ECONOMIC_FINANCIAL_INFO,info_evaluating_weth_requir,,,"" -/LEFTI/ECONOMIC_FINANCIAL_MIN_LEVEL,min_standards_required,,,"" -/LEFTI/TECHNICAL_CRITERIA_DOC,criteria_selection_docs,,,"" -/LEFTI/TECHNICAL_PROFESSIONAL_INFO,info_evaluating_weth_requir,,,"" -/LEFTI/TECHNICAL_PROFESSIONAL_MIN_LEVEL,min_standards_required,,,"" -/LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop,,,"" -/LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program,,,Set `tender.contractTerms.reservedExecution` to `true` -/LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,"" -/LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,"" -/LEFTI/PERFORMANCE_CONDITIONS,other_conditions,III.2.2,,Map to `tender.contractTerms.termsPerformance` -/LEFTI/PERFORMANCE_STAFF_QUALIFICATION,staff_responsible_indicate,,,"" +/LEFTI,info_legal,III,,"The standard forms express exclusion grounds and selection criteria in this section as unstructured text. In the introductory note to its [eForms consultation](https://github.com/eForms/eForms), the European Commission had proposed to create an extension to eForms to implement the [European Single Procurement Document (ESPD)](http://ec.europa.eu/growth/single-market/public-procurement/e-procurement/espd/) [Exchange Data Model](https://github.com/ESPD/ESPD-EDM), which expresses this information as structured data, following the model of the [Core Criterion and Core Evidence Vocabulary](https://joinup.ec.europa.eu/solution/core-criterion-and-core-evidence-vocabulary)." +/LEFTI/SUITABILITY,info_evaluating_requir,,,"Add a `SelectionCriterion` object to the `tender.selectionCriteria.criteria` array, set its `.type` to 'suitability', and map to its `.description`." +/LEFTI/ECONOMIC_CRITERIA_DOC,criteria_selection_docs,,,"Add a `Document` object to the `tender.documents` array, set its `.documentType` to 'economicSelectionCriteria', and set its `.id`." +/LEFTI/ECONOMIC_FINANCIAL_INFO,info_evaluating_weth_requir,,,"Add a `SelectionCriterion` object to the `tender.selectionCriteria.criteria` array, set its `.type` to 'economic', and map to its `.description`." +/LEFTI/ECONOMIC_FINANCIAL_MIN_LEVEL,min_standards_required,,,"Get the `SelectionCriterion` object whose `.type` is 'economic', and map to its `.minimum`" +/LEFTI/TECHNICAL_CRITERIA_DOC,criteria_selection_docs,,,"Add a `Document` object to the `tender.documents` array, set its `.documentType` to 'technicalSelectionCriteria', and set its `.id`." +/LEFTI/TECHNICAL_PROFESSIONAL_INFO,info_evaluating_weth_requir,,,"Add a `SelectionCriterion` object to the `tender.selectionCriteria.criteria` array, set its `.type` to 'technical', and map to its `.description`." +/LEFTI/TECHNICAL_PROFESSIONAL_MIN_LEVEL,min_standards_required,,,"Get the `SelectionCriterion` object whose `.type` is 'technical', and map to its `.minimum`" +/LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop,,,Set `tender.otherRequirements.reservedParticipation` to 'shelteredWorkshop' +/LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program,,,"Set `tender.contractTerms.hasReservedExecution` to `true`, and set `tender.contractTerms.reservedExecution` to 'Sheltered employment programmes'" +/LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,Set `tender.contractTerms.hasReservedExecution` to `true` +/LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,Map to `tender.contractTerms.reservedExecution` +/LEFTI/PERFORMANCE_CONDITIONS,other_conditions,III.2.2,,Map to `tender.contractTerms.performanceTerms` +/LEFTI/PERFORMANCE_STAFF_QUALIFICATION,staff_responsible_indicate,,,Set `tender.otherRequirements.requiresStaffNamesQualifications` to `true` /PROCEDURE,procedure,IV,,"" /PROCEDURE/PT_OPEN,proctype_open,,,"Set `tender.procurementMethod` to 'open', and set `tender.procurementMethodDetails` to 'Open procedure'" /PROCEDURE/ACCELERATED_PROC,justification,,https://github.com/open-contracting-archive/trade/blob/master/draft_extensions/tender_AcceleratedProcedure,"Set `tender.procedure.isAccelerated` to `true`, and map to `tender.procedure.acceleratedRationale`" @@ -113,10 +113,10 @@ xpath,label-key,index,comment,guidance /PROCEDURE/PT_COMPETITIVE_DIALOGUE,proctype_comp_dialogue,,,"Set `tender.procurementMethod` to 'selective', and set `tender.procurementMethodDetails` to 'Competitive dialogue'" /PROCEDURE/PT_INNOVATION_PARTNERSHIP,proctype_innovation,,,"Set `tender.procurementMethod` to 'selective', and set `tender.procurementMethodDetails` to 'Innovation partnership'" /PROCEDURE/FRAMEWORK,notice_involves_framework,,,Set `tender.techniques.hasFrameworkAgreement` to `true` -/PROCEDURE/FRAMEWORK/SEVERAL_OPERATORS,framework_several,,,"If *Envisaged maximum number of participants to the framework agreement* isn't set, set `tender.techniques.frameworkAgreement.maximumNumberParticipants` to 1e9999 (which parses to infinity)" -/PROCEDURE/FRAMEWORK/NB_PARTICIPANTS,framework_particip_envis,,,Map to `tender.techniques.frameworkAgreement.maximumNumberParticipants` -/PROCEDURE/FRAMEWORK/SINGLE_OPERATOR,framework_single,,,Set `tender.techniques.frameworkAgreement.maximumNumberParticipants` to 1 -/PROCEDURE/FRAMEWORK/JUSTIFICATION,framework_just_four,,,Map to `tender.techniques.frameworkAgreement.durationRationale` +/PROCEDURE/FRAMEWORK/SEVERAL_OPERATORS,framework_several,,,"If *Envisaged maximum number of participants to the framework agreement* isn't set, set `tender.techniques.frameworkAgreement.maximumParticipants` to 1e9999 (which parses to infinity)" +/PROCEDURE/FRAMEWORK/NB_PARTICIPANTS,framework_particip_envis,,,Map to `tender.techniques.frameworkAgreement.maximumParticipants` +/PROCEDURE/FRAMEWORK/SINGLE_OPERATOR,framework_single,,,Set `tender.techniques.frameworkAgreement.maximumParticipants` to 1 +/PROCEDURE/FRAMEWORK/JUSTIFICATION,framework_just_four,,,Map to `tender.techniques.frameworkAgreement.periodRationale` /PROCEDURE/DPS,notice_involves_dps,,,Set `tender.techniques.hasDynamicPurchasingSystem` to `true` /PROCEDURE/DPS_ADDITIONAL_PURCHASERS,dps_purchasers,,,Set `tender.techniques.dynamicPurchasingSystem.type` to 'open' /PROCEDURE/REDUCTION_RECOURSE,reduction_recourse,,,Set `tender.secondStage.successiveReduction` to `true` @@ -125,7 +125,7 @@ xpath,label-key,index,comment,guidance /PROCEDURE/INFO_ADD_EAUCTION,eauction_info_addit,,,Map to `tender.techniques.electronicAuction.description` /PROCEDURE/CONTRACT_COVERED_GPA,_yes,,,Add 'GPA' to `tender.coveredBy` /PROCEDURE/NO_CONTRACT_COVERED_GPA,_no,,,"Discard. If 'GPA' isn't in `tender.coveredBy`, then the procurement isn't covered by the GPA." -/PROCEDURE/NOTICE_NUMBER_OJ,number_oj,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/release_relatedNotice,Discard. The *previous publication concerning this procedure* is the OCDS release with the same `ocid` as this release and with an earlier `date` that is nearest that of this release. +/PROCEDURE/NOTICE_NUMBER_OJ,number_oj,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/release_relatedNotice,Discard. The *previous publication concerning this procedure* is the OCDS release with the same `ocid` as this release and with the nearest earlier `date` to this release. /PROCEDURE/DATE_RECEIPT_TENDERS,date,,,Map to the date component of `tender.tenderPeriod.endDate` /PROCEDURE/TIME_RECEIPT_TENDERS,time,,,Map to the time component of `tender.tenderPeriod.endDate` /PROCEDURE/DATE_DISPATCH_INVITATIONS,date,,,Map to the date component of `tender.secondStage.invitationDate`. @@ -134,7 +134,7 @@ xpath,label-key,index,comment,guidance /PROCEDURE/DATE_TENDER_VALID,date_tender_valid,,,Map to `tender.submissionTerms.bidValidityPeriod.endDate` /PROCEDURE/DURATION_TENDER_VALID,duration_months,,,"Multiply by 30, and map to `tender.submissionTerms.bidValidityPeriod.durationInDays`" /PROCEDURE/OPENING_CONDITION,opening_conditions,IV.2.7,,"" -/PROCEDURE/OPENING_CONDITION/DATE_OPENING_TENDERS,date,,https://github.com/open-contracting-archive/trade/blob/master/draft_extensions/milestone_RelatedParties,Map to the date component of `tender.awardPeriod.startDate` and to the date component of `tender.bidOpening.date` +/PROCEDURE/OPENING_CONDITION/DATE_OPENING_TENDERS,date,,https://github.com/open-contracting-archive/trade/blob/master/draft_extensions/milestone_RelatedParties,Map to the date component of `tender.awardPeriod.startDate` and to the date component of `tender.bidOpening.date` /PROCEDURE/OPENING_CONDITION/TIME_OPENING_TENDERS,time,,https://github.com/open-contracting-archive/trade/blob/master/draft_extensions/milestone_RelatedParties,Map to the time component of `tender.awardPeriod.startDate` and to the time component of `tender.bidOpening.date` /PROCEDURE/OPENING_CONDITION/PLACE,opening_place,,https://github.com/open-contracting-archive/trade/blob/master/draft_extensions/milestone_RelatedParties,Map to `tender.bidOpening.address.streetAddress` /PROCEDURE/OPENING_CONDITION/INFO_ADD,opening_addit_info,,https://github.com/open-contracting-archive/trade/blob/master/draft_extensions/milestone_RelatedParties,Map to `tender.bidOpening.description` @@ -143,7 +143,7 @@ xpath,label-key,index,comment,guidance /COMPLEMENTARY_INFO/ESTIMATED_TIMING,further_notices_timing,,,Map to `tender.recurrence.description` /COMPLEMENTARY_INFO/NO_RECURRENT_PROCUREMENT,_no,,,Set `tender.hasRecurrence` to `false` /COMPLEMENTARY_INFO/EORDERING,eordering_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows,Set `tender.contractTerms.hasElectronicOrdering` to `true` -/COMPLEMENTARY_INFO/EINVOICING,einvoicing_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows https://github.com/eForms/eForms/issues/88,Set `tender.contractTerms.electronicInvoicing` to 'allowed' +/COMPLEMENTARY_INFO/EINVOICING,einvoicing_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows https://github.com/eForms/eForms/issues/88,Set `tender.contractTerms.electronicInvoicingPolicy` to 'allowed' /COMPLEMENTARY_INFO/EPAYMENT,epayment_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows https://github.com/eForms/eForms/issues/88,Set `tender.contractTerms.hasElectronicPayment` to `true` /COMPLEMENTARY_INFO/INFO_ADD,info_additional,VI.3,,Map to `description` /COMPLEMENTARY_INFO/ADDRESS_REVIEW_BODY,appeals_body,VI.4.1,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ReviewProcedure,"[Add a party](../operations#add-a-party), and add 'reviewBody' to its `.roles`" diff --git a/output/mapping/F03_2014.csv b/output/mapping/F03_2014.csv index 3241b352..d56606a3 100644 --- a/output/mapping/F03_2014.csv +++ b/output/mapping/F03_2014.csv @@ -78,7 +78,7 @@ xpath,label-key,index,comment,guidance /PROCEDURE/EAUCTION_USED,eauction_was_used,,,Set `tender.techniques.hasElectronicAuction` to `true` /PROCEDURE/CONTRACT_COVERED_GPA,_yes,,,Add 'GPA' to `tender.coveredBy` /PROCEDURE/NO_CONTRACT_COVERED_GPA,_no,,,"Discard. If 'GPA' isn't in `tender.coveredBy`, then the procurement isn't covered by the GPA." -/PROCEDURE/NOTICE_NUMBER_OJ,number_oj,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/release_relatedNotice,Discard. The *previous publication concerning this procedure* is the OCDS release with the same `ocid` as this release and with an earlier `date` that is nearest that of this release. +/PROCEDURE/NOTICE_NUMBER_OJ,number_oj,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/release_relatedNotice,Discard. The *previous publication concerning this procedure* is the OCDS release with the same `ocid` as this release and with the nearest earlier `date` to this release. /PROCEDURE/TERMINATION_DPS,termination_dps,,,Set `tender.techniques.dynamicPurchasingSystem.status` to 'terminated' /PROCEDURE/TERMINATION_PIN,pin_as_call_no_contracts,,,Set `tender.status` to 'complete' /AWARD_CONTRACT,award_of_contract,V,,Add an `Award` object to the `awards` array @@ -145,7 +145,7 @@ xpath,label-key,index,comment,guidance /COMPLEMENTARY_INFO/REVIEW_PROCEDURE,appeals_deadline,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ReviewProcedure,Map to `tender.reviewDetails` (PROPOSAL #6) /COMPLEMENTARY_INFO/ADDRESS_REVIEW_INFO,appeals_info,VI.4.4,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ReviewProcedure,"[Add a party](../operations#add-a-party), and add 'reviewContactPoint' to its `.roles` (PROPOSAL #25)" /COMPLEMENTARY_INFO/DATE_DISPATCH_NOTICE,date_dispatch,VI.5,,Map to `date` -/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE,d_just_for_wo_pub_201424,D1.1,,"For each of the following, add a `Classification` object to the `tender.procurementMethodRationaleCodes` array. Set the classification's `.scheme` to `TED_PT_AWARD_CONTRACT_WITHOUT_CALL`, and set its `.id` and `.name` as follows (PROPOSAL #30)" +/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE,d_just_for_wo_pub_201424,D1.1,,"For each of the following, add a `Classification` object to the `tender.procurementMethodRationaleCodes` array. Set the classification's `.scheme` to 'TED_PT_AWARD_CONTRACT_WITHOUT_CALL', and set its `.id` and `.name` as follows (PROPOSAL #30)" /PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_PROC_OPEN,d_proc_open,,,Set `.id` to 'D_PROC_OPEN' and `.name` to 'No tenders or no suitable tenders/requests to participate in response to open procedure' /PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_PROC_RESTRICTED,d_proc_restricted,,,Set `.id` to 'D_PROC_RESTRICTED' and `.name` to 'No tenders or no suitable tenders/requests to participate in response to restricted procedure' /PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_MANUF_FOR_RESEARCH,d_manuf_for_research,,,"Set `.id` to 'D_MANUF_FOR_RESEARCH' and `.name` to 'The products involved are manufactured purely for the purpose of research, experiment, study or development under the conditions stated in the directive'" diff --git a/output/mapping/F04_2014.csv b/output/mapping/F04_2014.csv index 5ebcef48..be717ae5 100644 --- a/output/mapping/F04_2014.csv +++ b/output/mapping/F04_2014.csv @@ -32,7 +32,7 @@ xpath,label-key,index,comment,guidance /CONTRACTING_BODY/ADDRESS_PARTICIPATION_IDEM,address_to_above,,,"Add 'written' to `tender.submissionMethod`, and discard. Tenders or requests to participate must be submitted to the abovementioned address unless otherwised specified." /CONTRACTING_BODY/ADDRESS_PARTICIPATION,address_following,,,"Add 'written' to `tender.submissionMethod`, and map to `tender.submissionMethodDetails`\n\nIf *electronically via* is checked, this results in a loss of structure. (WARNING #27)" /CONTRACTING_BODY/URL_TOOL,url_communication_tools,,,Map to `tender.communication.atypicalToolUrl` (PROPOSAL #13) -/CONTRACTING_BODY/CE_ACTIVITY,mainactivity,I.6,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to 'TED_CE_ACTIVITY', and set its `.id` as follows: (PROPOSAL #10)\n\n(The codes are drawn from [Directive 2014/25/EU](https://eur-lex.europa.eu/legal-content/en/TXT/?uri=CELEX%3A32014L0025#L_2014094EN.01033901))" +/CONTRACTING_BODY/CE_ACTIVITY,mainactivity,I.6,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to 'TED_CE_ACTIVITY', and set its `.id` and/or `.name` as follows: (PROPOSAL #10)\n\n(The codes are drawn from [Directive 2014/25/EU](https://eur-lex.europa.eu/legal-content/en/TXT/?uri=CELEX%3A32014L0025#L_2014094EN.01033901))" /CONTRACTING_BODY/CE_ACTIVITY_OTHER,other_activity,,,Map to `.name` /OBJECT_CONTRACT,object,II,,"" /OBJECT_CONTRACT/@ITEM,,,,Discard @@ -84,29 +84,29 @@ xpath,label-key,index,comment,guidance /OBJECT_CONTRACT/OBJECT_DESCR/NO_EU_PROGR_RELATED,_no,,,"Discard. If there's no party with the role 'funder' and the name 'European Union', then the procurement isn't related to a project and/or programme financed by European Union funds." /OBJECT_CONTRACT/OBJECT_DESCR/INFO_ADD,info_additional,II.2.14,,"Append to the lot's `.description`, and append to the item's `.description`\n\nThis results in a loss of structure. (WARNING #28)" /OBJECT_CONTRACT/DATE_PUBLICATION_NOTICE,date_of_contract_notice,II.3,,Map to `tender.communication.futureNoticeDate` -/LEFTI,info_legal,III,,"The standard forms express exclusion grounds and selection criteria in this section as unstructured text. In the [introductory note](https://github.com/eForms/eForms/raw/master/20180604_eForms_consultation_introduction.docx) to its [eForms consultation](https://github.com/eForms/eForms), the European Commission proposes to create an extension to eForms to implement the [European Single Procurement Document (ESPD)](http://ec.europa.eu/growth/single-market/public-procurement/e-procurement/espd/), which expresses this information as structured data, following the model of the [Core Criterion and Core Evidence Vocabulary](https://joinup.ec.europa.eu/solution/core-criterion-and-core-evidence-vocabulary). With respect to OCDS, work on this section is postponed until either the extension to eForms is available or until the [ESPD Exchange Data Model](https://github.com/ESPD/ESPD-EDM) is stable." -/LEFTI/SUITABILITY,info_evaluating_requir,,,"" -/LEFTI/ECONOMIC_CRITERIA_DOC,criteria_selection_docs,,,"" -/LEFTI/ECONOMIC_FINANCIAL_INFO,info_evaluating_weth_requir,,,"" -/LEFTI/ECONOMIC_FINANCIAL_MIN_LEVEL,min_standards_required,,,"" -/LEFTI/TECHNICAL_CRITERIA_DOC,criteria_selection_docs,,,"" -/LEFTI/TECHNICAL_PROFESSIONAL_INFO,info_evaluating_weth_requir,,,"" -/LEFTI/TECHNICAL_PROFESSIONAL_MIN_LEVEL,min_standards_required,,,"" -/LEFTI/RULES_CRITERIA,descr_brief_rules,,,"Map to `tender.participationConditions.objectiveRulesCriteria`" -/LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop,,,"" -/LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program,,,Set `tender.contractTerms.reservedExecution` to `true` -/LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,"" -/LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,"" -/LEFTI/PERFORMANCE_CONDITIONS,other_conditions,III.2.2,,Map to `tender.contractTerms.termsPerformance` -/LEFTI/PERFORMANCE_STAFF_QUALIFICATION,staff_responsible_indicate,,,"" +/LEFTI,info_legal,III,,"The standard forms express exclusion grounds and selection criteria in this section as unstructured text. In the introductory note to its [eForms consultation](https://github.com/eForms/eForms), the European Commission had proposed to create an extension to eForms to implement the [European Single Procurement Document (ESPD)](http://ec.europa.eu/growth/single-market/public-procurement/e-procurement/espd/) [Exchange Data Model](https://github.com/ESPD/ESPD-EDM), which expresses this information as structured data, following the model of the [Core Criterion and Core Evidence Vocabulary](https://joinup.ec.europa.eu/solution/core-criterion-and-core-evidence-vocabulary)." +/LEFTI/SUITABILITY,info_evaluating_requir,,,"Add a `SelectionCriterion` object to the `tender.selectionCriteria.criteria` array, set its `.type` to 'suitability', and map to its `.description`." +/LEFTI/ECONOMIC_CRITERIA_DOC,criteria_selection_docs,,,"Add a `Document` object to the `tender.documents` array, set its `.documentType` to 'economicSelectionCriteria', and set its `.id`." +/LEFTI/ECONOMIC_FINANCIAL_INFO,info_evaluating_weth_requir,,,"Add a `SelectionCriterion` object to the `tender.selectionCriteria.criteria` array, set its `.type` to 'economic', and map to its `.description`." +/LEFTI/ECONOMIC_FINANCIAL_MIN_LEVEL,min_standards_required,,,"Get the `SelectionCriterion` object whose `.type` is 'economic', and map to its `.minimum`" +/LEFTI/TECHNICAL_CRITERIA_DOC,criteria_selection_docs,,,"Add a `Document` object to the `tender.documents` array, set its `.documentType` to 'technicalSelectionCriteria', and set its `.id`." +/LEFTI/TECHNICAL_PROFESSIONAL_INFO,info_evaluating_weth_requir,,,"Add a `SelectionCriterion` object to the `tender.selectionCriteria.criteria` array, set its `.type` to 'technical', and map to its `.description`." +/LEFTI/TECHNICAL_PROFESSIONAL_MIN_LEVEL,min_standards_required,,,"Get the `SelectionCriterion` object whose `.type` is 'technical', and map to its `.minimum`" +/LEFTI/RULES_CRITERIA,descr_brief_rules,,,Map to `tender.otherRequirements.reductionCriteria` +/LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop,,,Set `tender.otherRequirements.reservedParticipation` to 'shelteredWorkshop' +/LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program,,,"Set `tender.contractTerms.hasReservedExecution` to `true`, and set `tender.contractTerms.reservedExecution` to 'Sheltered employment programmes'" +/LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,Set `tender.contractTerms.hasReservedExecution` to `true` +/LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,Map to `tender.contractTerms.reservedExecution` +/LEFTI/PERFORMANCE_CONDITIONS,other_conditions,III.2.2,,Map to `tender.contractTerms.performanceTerms` +/LEFTI/PERFORMANCE_STAFF_QUALIFICATION,staff_responsible_indicate,,,Set `tender.otherRequirements.requiresStaffNamesQualifications` to `true` /PROCEDURE,procedure,IV,,"" /PROCEDURE/PT_RESTRICTED,proctype_restricted,,,"Set `tender.procurementMethod` to 'selective', and set `tender.procurementMethodDetails` to 'Restricted procedure'" /PROCEDURE/PT_NEGOTIATED_WITH_PRIOR_CALL,proctype_negot_w_call,,,"Set `tender.procurementMethod` to 'selective', and set `tender.procurementMethodDetails` to 'Negotiated procedure with prior call for competition'" /PROCEDURE/FRAMEWORK,notice_involves_framework,,,Set `tender.techniques.hasFrameworkAgreement` to `true` -/PROCEDURE/FRAMEWORK/SEVERAL_OPERATORS,framework_several,,,"If *Envisaged maximum number of participants to the framework agreement* isn't set, set `tender.techniques.frameworkAgreement.maximumNumberParticipants` to 1e9999 (which parses to infinity)" -/PROCEDURE/FRAMEWORK/NB_PARTICIPANTS,framework_particip_envis,,,Map to `tender.techniques.frameworkAgreement.maximumNumberParticipants` -/PROCEDURE/FRAMEWORK/SINGLE_OPERATOR,framework_single,,,Set `tender.techniques.frameworkAgreement.maximumNumberParticipants` to 1 -/PROCEDURE/FRAMEWORK/JUSTIFICATION,framework_just_eight,,,Map to `tender.techniques.frameworkAgreement.durationRationale` +/PROCEDURE/FRAMEWORK/SEVERAL_OPERATORS,framework_several,,,"If *Envisaged maximum number of participants to the framework agreement* isn't set, set `tender.techniques.frameworkAgreement.maximumParticipants` to 1e9999 (which parses to infinity)" +/PROCEDURE/FRAMEWORK/NB_PARTICIPANTS,framework_particip_envis,,,Map to `tender.techniques.frameworkAgreement.maximumParticipants` +/PROCEDURE/FRAMEWORK/SINGLE_OPERATOR,framework_single,,,Set `tender.techniques.frameworkAgreement.maximumParticipants` to 1 +/PROCEDURE/FRAMEWORK/JUSTIFICATION,framework_just_eight,,,Map to `tender.techniques.frameworkAgreement.periodRationale` /PROCEDURE/DPS,notice_involves_dps,,,Set `tender.techniques.hasDynamicPurchasingSystem` to `true` /PROCEDURE/DPS_ADDITIONAL_PURCHASERS,dps_purchasers,,,Set `tender.techniques.dynamicPurchasingSystem.type` to 'open' /PROCEDURE/EAUCTION_USED,eauction_will_used,,,Set `tender.techniques.hasElectronicAuction` to `true` @@ -120,7 +120,7 @@ xpath,label-key,index,comment,guidance /PROCEDURE/DATE_AWARD_SCHEDULED,award_scheduled,IV.2.5,,Map to `tender.awardPeriod.startDate` /COMPLEMENTARY_INFO,info_complement,VI,,"" /COMPLEMENTARY_INFO/EORDERING,eordering_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows,Set `tender.contractTerms.hasElectronicOrdering` to `true` -/COMPLEMENTARY_INFO/EINVOICING,einvoicing_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows https://github.com/eForms/eForms/issues/88,Set `tender.contractTerms.electronicInvoicing` to 'allowed' +/COMPLEMENTARY_INFO/EINVOICING,einvoicing_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows https://github.com/eForms/eForms/issues/88,Set `tender.contractTerms.electronicInvoicingPolicy` to 'allowed' /COMPLEMENTARY_INFO/EPAYMENT,epayment_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows https://github.com/eForms/eForms/issues/88,Set `tender.contractTerms.hasElectronicPayment` to `true` /COMPLEMENTARY_INFO/INFO_ADD,info_additional,VI.3,,Map to `description` /COMPLEMENTARY_INFO/ADDRESS_REVIEW_BODY,appeals_body,VI.4.1,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ReviewProcedure,"[Add a party](../operations#add-a-party), and add 'reviewBody' to its `.roles`" diff --git a/output/mapping/F05_2014.csv b/output/mapping/F05_2014.csv index 2caff315..880e081d 100644 --- a/output/mapping/F05_2014.csv +++ b/output/mapping/F05_2014.csv @@ -31,7 +31,7 @@ xpath,label-key,index,comment,guidance /CONTRACTING_BODY/ADDRESS_PARTICIPATION_IDEM,address_to_above,,,"Add 'written' to `tender.submissionMethod`, and discard. Tenders or requests to participate must be submitted to the abovementioned address unless otherwised specified." /CONTRACTING_BODY/ADDRESS_PARTICIPATION,address_following,,,"Add 'written' to `tender.submissionMethod`, and map to `tender.submissionMethodDetails`\n\nIf *electronically via* is checked, this results in a loss of structure. (WARNING #27)" /CONTRACTING_BODY/URL_TOOL,url_communication_tools,,,Map to `tender.communication.atypicalToolUrl` (PROPOSAL #13) -/CONTRACTING_BODY/CE_ACTIVITY,mainactivity,I.6,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to 'TED_CE_ACTIVITY', and set its `.id` as follows: (PROPOSAL #10)\n\n(The codes are drawn from [Directive 2014/25/EU](https://eur-lex.europa.eu/legal-content/en/TXT/?uri=CELEX%3A32014L0025#L_2014094EN.01033901))" +/CONTRACTING_BODY/CE_ACTIVITY,mainactivity,I.6,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to 'TED_CE_ACTIVITY', and set its `.id` and/or `.name` as follows: (PROPOSAL #10)\n\n(The codes are drawn from [Directive 2014/25/EU](https://eur-lex.europa.eu/legal-content/en/TXT/?uri=CELEX%3A32014L0025#L_2014094EN.01033901))" /CONTRACTING_BODY/CE_ACTIVITY_OTHER,other_activity,,,Map to `.name` /OBJECT_CONTRACT,object,II,,"" /OBJECT_CONTRACT/TITLE,title_contract,II.1.1,,Map to `tender.title` @@ -85,28 +85,28 @@ xpath,label-key,index,comment,guidance /OBJECT_CONTRACT/OBJECT_DESCR/OPTIONS,_yes,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/lot_Options,Set the lot's `.hasOptions` to `true` (PROPOSAL #21) /OBJECT_CONTRACT/OBJECT_DESCR/OPTIONS_DESCR,options_descr,,,Map to the lot's `.options.description` (PROPOSAL #21) /OBJECT_CONTRACT/OBJECT_DESCR/NO_OPTIONS,_no,,,Set the lot's `.hasOptions` to `false` -/OBJECT_CONTRACT/OBJECT_DESCR/ECATALOGUE_REQUIRED,electronic_catalogue_required,,,Set the lot's `.submissionTerms.electronicCatalogue` to 'required'. +/OBJECT_CONTRACT/OBJECT_DESCR/ECATALOGUE_REQUIRED,electronic_catalogue_required,,,Set the lot's `.submissionTerms.electronicCataloguePolicy` to 'required'. /OBJECT_CONTRACT/OBJECT_DESCR/EU_PROGR_RELATED,_yes,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/budget_isEUFunded https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/budget_EUFunded,"Get the `Organization` object for the European Union; if none exists yet, [add a party](../operations#add-a-party), and set its `.name` to 'European Union'. Then, add 'funder' to its `.roles`.\n\nGet the `Finance` object for this project; if none exists yet, add a `Finance` object to the `planning.budget.finance` array, map to its `.description`, set its `.id`, set its `.financingParty.name` to 'European Union', and set its `.financingParty.id` to the party's `.id`. Then, add the lot's `.id` to its `.relatedLots`. (PROPOSAL #20)\n\nIn [future forms](https://github.com/eForms/eForms/issues/181#issuecomment-439861320), this field will be de-emphasized." /OBJECT_CONTRACT/OBJECT_DESCR/NO_EU_PROGR_RELATED,_no,,,"Discard. If there's no party with the role 'funder' and the name 'European Union', then the procurement isn't related to a project and/or programme financed by European Union funds." /OBJECT_CONTRACT/OBJECT_DESCR/INFO_ADD,info_additional,II.2.14,,"Append to the lot's `.description`, and append to the item's `.description`\n\nThis results in a loss of structure. (WARNING #28)" -/LEFTI,info_legal,III,,"The standard forms express exclusion grounds and selection criteria in this section as unstructured text. In the [introductory note](https://github.com/eForms/eForms/raw/master/20180604_eForms_consultation_introduction.docx) to its [eForms consultation](https://github.com/eForms/eForms), the European Commission proposes to create an extension to eForms to implement the [European Single Procurement Document (ESPD)](http://ec.europa.eu/growth/single-market/public-procurement/e-procurement/espd/), which expresses this information as structured data, following the model of the [Core Criterion and Core Evidence Vocabulary](https://joinup.ec.europa.eu/solution/core-criterion-and-core-evidence-vocabulary). With respect to OCDS, work on this section is postponed until either the extension to eForms is available or until the [ESPD Exchange Data Model](https://github.com/ESPD/ESPD-EDM) is stable." -/LEFTI/SUITABILITY,info_evaluating_requir,,,"" -/LEFTI/ECONOMIC_CRITERIA_DOC,criteria_selection_docs,,,"" -/LEFTI/ECONOMIC_FINANCIAL_INFO,info_evaluating_weth_requir,,,"" -/LEFTI/ECONOMIC_FINANCIAL_MIN_LEVEL,min_standards_required,,,"" -/LEFTI/TECHNICAL_CRITERIA_DOC,criteria_selection_docs,,,"" -/LEFTI/TECHNICAL_PROFESSIONAL_INFO,info_evaluating_weth_requir,,,"" -/LEFTI/TECHNICAL_PROFESSIONAL_MIN_LEVEL,min_standards_required,,,"" -/LEFTI/RULES_CRITERIA,descr_brief_rules,,,"" -/LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop,,,"" -/LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program,,,Set `tender.contractTerms.reservedExecution` to `true` -/LEFTI/DEPOSIT_GUARANTEE_REQUIRED,deposits_required,III.1.6,,"Set `tender.participationConditions.hasGuaranteeRequired` to `true`" +/LEFTI,info_legal,III,,"The standard forms express exclusion grounds and selection criteria in this section as unstructured text. In the introductory note to its [eForms consultation](https://github.com/eForms/eForms), the European Commission had proposed to create an extension to eForms to implement the [European Single Procurement Document (ESPD)](http://ec.europa.eu/growth/single-market/public-procurement/e-procurement/espd/) [Exchange Data Model](https://github.com/ESPD/ESPD-EDM), which expresses this information as structured data, following the model of the [Core Criterion and Core Evidence Vocabulary](https://joinup.ec.europa.eu/solution/core-criterion-and-core-evidence-vocabulary)." +/LEFTI/SUITABILITY,info_evaluating_requir,,,"Add a `SelectionCriterion` object to the `tender.selectionCriteria.criteria` array, set its `.type` to 'suitability', and map to its `.description`." +/LEFTI/ECONOMIC_CRITERIA_DOC,criteria_selection_docs,,,"Add a `Document` object to the `tender.documents` array, set its `.documentType` to 'economicSelectionCriteria', and set its `.id`." +/LEFTI/ECONOMIC_FINANCIAL_INFO,info_evaluating_weth_requir,,,"Add a `SelectionCriterion` object to the `tender.selectionCriteria.criteria` array, set its `.type` to 'economic', and map to its `.description`." +/LEFTI/ECONOMIC_FINANCIAL_MIN_LEVEL,min_standards_required,,,"Get the `SelectionCriterion` object whose `.type` is 'economic', and map to its `.minimum`" +/LEFTI/TECHNICAL_CRITERIA_DOC,criteria_selection_docs,,,"Add a `Document` object to the `tender.documents` array, set its `.documentType` to 'technicalSelectionCriteria', and set its `.id`." +/LEFTI/TECHNICAL_PROFESSIONAL_INFO,info_evaluating_weth_requir,,,"Add a `SelectionCriterion` object to the `tender.selectionCriteria.criteria` array, set its `.type` to 'technical', and map to its `.description`." +/LEFTI/TECHNICAL_PROFESSIONAL_MIN_LEVEL,min_standards_required,,,"Get the `SelectionCriterion` object whose `.type` is 'technical', and map to its `.minimum`" +/LEFTI/RULES_CRITERIA,descr_brief_rules,,,Map to `tender.otherRequirements.reductionCriteria` +/LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop,,,Set `tender.otherRequirements.reservedParticipation` to 'shelteredWorkshop' +/LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program,,,"Set `tender.contractTerms.hasReservedExecution` to `true`, and set `tender.contractTerms.reservedExecution` to 'Sheltered employment programmes'" +/LEFTI/DEPOSIT_GUARANTEE_REQUIRED,deposits_required,III.1.6,,Set `tender.submissionTerms.hasRequiredGuarantees` to `true` /LEFTI/MAIN_FINANCING_CONDITION,financing_conditions,III.1.7,,Map to `tender.contractTerms.financialTerms` -/LEFTI/LEGAL_FORM,legal_form_taken,III.1.8,,"Map to `tender.participationConditions.tendererLegalForm`" -/LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,"" -/LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,"" -/LEFTI/PERFORMANCE_CONDITIONS,other_conditions,III.2.2,,Map to `tender.contractTerms.termsPerformance` -/LEFTI/PERFORMANCE_STAFF_QUALIFICATION,staff_responsible_indicate,,,"" +/LEFTI/LEGAL_FORM,legal_form_taken,III.1.8,,Map to `tender.contractTerms.tendererLegalForm` +/LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,Set `tender.contractTerms.hasReservedExecution` to `true` +/LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,Map to `tender.contractTerms.reservedExecution` +/LEFTI/PERFORMANCE_CONDITIONS,other_conditions,III.2.2,,Map to `tender.contractTerms.performanceTerms` +/LEFTI/PERFORMANCE_STAFF_QUALIFICATION,staff_responsible_indicate,,,Set `tender.otherRequirements.requiresStaffNamesQualifications` to `true` /PROCEDURE,procedure,IV,,"" /PROCEDURE/PT_OPEN,proctype_open,,,"Set `tender.procurementMethod` to 'open', and set `tender.procurementMethodDetails` to 'Open procedure'" /PROCEDURE/PT_RESTRICTED,proctype_restricted,,,"Set `tender.procurementMethod` to 'selective', and set `tender.procurementMethodDetails` to 'Restricted procedure'" @@ -114,10 +114,10 @@ xpath,label-key,index,comment,guidance /PROCEDURE/PT_COMPETITIVE_DIALOGUE,proctype_comp_dialogue,,,"Set `tender.procurementMethod` to 'selective', and set `tender.procurementMethodDetails` to 'Competitive dialogue'" /PROCEDURE/PT_INNOVATION_PARTNERSHIP,proctype_innovation,,,"Set `tender.procurementMethod` to 'selective', and set `tender.procurementMethodDetails` to 'Innovation partnership'" /PROCEDURE/FRAMEWORK,notice_involves_framework,,,Set `tender.techniques.hasFrameworkAgreement` to `true` -/PROCEDURE/FRAMEWORK/SEVERAL_OPERATORS,framework_several,,,"If *Envisaged maximum number of participants to the framework agreement* isn't set, set `tender.techniques.frameworkAgreement.maximumNumberParticipants` to 1e9999 (which parses to infinity)" -/PROCEDURE/FRAMEWORK/NB_PARTICIPANTS,framework_particip_envis,,,Map to `tender.techniques.frameworkAgreement.maximumNumberParticipants` -/PROCEDURE/FRAMEWORK/SINGLE_OPERATOR,framework_single,,,Set `tender.techniques.frameworkAgreement.maximumNumberParticipants` to 1 -/PROCEDURE/FRAMEWORK/JUSTIFICATION,framework_just_eight,,,Map to `tender.techniques.frameworkAgreement.durationRationale` +/PROCEDURE/FRAMEWORK/SEVERAL_OPERATORS,framework_several,,,"If *Envisaged maximum number of participants to the framework agreement* isn't set, set `tender.techniques.frameworkAgreement.maximumParticipants` to 1e9999 (which parses to infinity)" +/PROCEDURE/FRAMEWORK/NB_PARTICIPANTS,framework_particip_envis,,,Map to `tender.techniques.frameworkAgreement.maximumParticipants` +/PROCEDURE/FRAMEWORK/SINGLE_OPERATOR,framework_single,,,Set `tender.techniques.frameworkAgreement.maximumParticipants` to 1 +/PROCEDURE/FRAMEWORK/JUSTIFICATION,framework_just_eight,,,Map to `tender.techniques.frameworkAgreement.periodRationale` /PROCEDURE/DPS,notice_involves_dps,,,Set `tender.techniques.hasDynamicPurchasingSystem` to `true` /PROCEDURE/DPS_ADDITIONAL_PURCHASERS,dps_purchasers,,,Set `tender.techniques.dynamicPurchasingSystem.type` to 'open' /PROCEDURE/REDUCTION_RECOURSE,reduction_recourse,,,Set `tender.secondStage.successiveReduction` to `true` @@ -125,7 +125,7 @@ xpath,label-key,index,comment,guidance /PROCEDURE/INFO_ADD_EAUCTION,eauction_info_addit,,,Map to `tender.techniques.electronicAuction.description` /PROCEDURE/CONTRACT_COVERED_GPA,_yes,,,Add 'GPA' to `tender.coveredBy` /PROCEDURE/NO_CONTRACT_COVERED_GPA,_no,,,"Discard. If 'GPA' isn't in `tender.coveredBy`, then the procurement isn't covered by the GPA." -/PROCEDURE/NOTICE_NUMBER_OJ,number_oj,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/release_relatedNotice,Discard. The *previous publication concerning this procedure* is the OCDS release with the same `ocid` as this release and with an earlier `date` that is nearest that of this release. +/PROCEDURE/NOTICE_NUMBER_OJ,number_oj,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/release_relatedNotice,Discard. The *previous publication concerning this procedure* is the OCDS release with the same `ocid` as this release and with the nearest earlier `date` to this release. /PROCEDURE/DATE_RECEIPT_TENDERS,date,,,Map to the date component of `tender.tenderPeriod.endDate` /PROCEDURE/TIME_RECEIPT_TENDERS,time,,,Map to the time component of `tender.tenderPeriod.endDate` /PROCEDURE/DATE_DISPATCH_INVITATIONS,date,,,Map to the date component of `tender.secondStage.invitationDate`. @@ -143,7 +143,7 @@ xpath,label-key,index,comment,guidance /COMPLEMENTARY_INFO/ESTIMATED_TIMING,further_notices_timing,,,Map to `tender.recurrence.description` /COMPLEMENTARY_INFO/NO_RECURRENT_PROCUREMENT,_no,,,Set `tender.hasRecurrence` to `false` /COMPLEMENTARY_INFO/EORDERING,eordering_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows,Set `tender.contractTerms.hasElectronicOrdering` to `true` -/COMPLEMENTARY_INFO/EINVOICING,einvoicing_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows https://github.com/eForms/eForms/issues/88,Set `tender.contractTerms.electronicInvoicing` to 'allowed' +/COMPLEMENTARY_INFO/EINVOICING,einvoicing_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows https://github.com/eForms/eForms/issues/88,Set `tender.contractTerms.electronicInvoicingPolicy` to 'allowed' /COMPLEMENTARY_INFO/EPAYMENT,epayment_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows https://github.com/eForms/eForms/issues/88,Set `tender.contractTerms.hasElectronicPayment` to `true` /COMPLEMENTARY_INFO/INFO_ADD,info_additional,VI.3,,Map to `description` /COMPLEMENTARY_INFO/ADDRESS_REVIEW_BODY,appeals_body,VI.4.1,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ReviewProcedure,"[Add a party](../operations#add-a-party), and add 'reviewBody' to its `.roles`" diff --git a/output/mapping/F06_2014.csv b/output/mapping/F06_2014.csv index ce487596..a09ce280 100644 --- a/output/mapping/F06_2014.csv +++ b/output/mapping/F06_2014.csv @@ -22,7 +22,7 @@ xpath,label-key,index,comment,guidance /CONTRACTING_BODY/JOINT_PROCUREMENT_INVOLVED,joint_procurement_involves,,,"Discard. If there are multiple parties with the role 'buyer', then the contract involves joint procurement. (When *The contract involves joint procurement* is checked, at least one additional contracting authority is provided.)" /CONTRACTING_BODY/PROCUREMENT_LAW,joint_national_law,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_JointProcurement,Map to `tender.crossBorderLaw` (PROPOSAL #12) /CONTRACTING_BODY/CENTRAL_PURCHASING,joint_procurement_central,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,Add 'centralPurchasingBody' to the `.roles` of the party (PROPOSAL #11) -/CONTRACTING_BODY/CE_ACTIVITY,mainactivity,I.6,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to 'TED_CE_ACTIVITY', and set its `.id` as follows: (PROPOSAL #10)\n\n(The codes are drawn from [Directive 2014/25/EU](https://eur-lex.europa.eu/legal-content/en/TXT/?uri=CELEX%3A32014L0025#L_2014094EN.01033901))" +/CONTRACTING_BODY/CE_ACTIVITY,mainactivity,I.6,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to 'TED_CE_ACTIVITY', and set its `.id` and/or `.name` as follows: (PROPOSAL #10)\n\n(The codes are drawn from [Directive 2014/25/EU](https://eur-lex.europa.eu/legal-content/en/TXT/?uri=CELEX%3A32014L0025#L_2014094EN.01033901))" /CONTRACTING_BODY/CE_ACTIVITY_OTHER,other_activity,,,Map to `.name` /OBJECT_CONTRACT,object,II,,"" /OBJECT_CONTRACT/TITLE,title_contract,II.1.1,,Map to `tender.title` @@ -78,7 +78,7 @@ xpath,label-key,index,comment,guidance /PROCEDURE/EAUCTION_USED,eauction_was_used,,,Set `tender.techniques.hasElectronicAuction` to `true` /PROCEDURE/CONTRACT_COVERED_GPA,_yes,,,Add 'GPA' to `tender.coveredBy` /PROCEDURE/NO_CONTRACT_COVERED_GPA,_no,,,"Discard. If 'GPA' isn't in `tender.coveredBy`, then the procurement isn't covered by the GPA." -/PROCEDURE/NOTICE_NUMBER_OJ,number_oj,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/release_relatedNotice,Discard. The *previous publication concerning this procedure* is the OCDS release with the same `ocid` as this release and with an earlier `date` that is nearest that of this release. +/PROCEDURE/NOTICE_NUMBER_OJ,number_oj,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/release_relatedNotice,Discard. The *previous publication concerning this procedure* is the OCDS release with the same `ocid` as this release and with the nearest earlier `date` to this release. /PROCEDURE/TERMINATION_DPS,termination_dps,,,Set `tender.techniques.dynamicPurchasingSystem.status` to 'terminated' /PROCEDURE/TERMINATION_PIN,pin_as_call_no_contracts_ce,,,Set `tender.status` to 'complete' /AWARD_CONTRACT,award_of_contract,V,,Add an `Award` object to the `awards` array @@ -150,7 +150,7 @@ xpath,label-key,index,comment,guidance /COMPLEMENTARY_INFO/REVIEW_PROCEDURE,appeals_deadline,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ReviewProcedure,Map to `tender.reviewDetails` (PROPOSAL #6) /COMPLEMENTARY_INFO/ADDRESS_REVIEW_INFO,appeals_info,VI.4.4,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ReviewProcedure,"[Add a party](../operations#add-a-party), and add 'reviewContactPoint' to its `.roles` (PROPOSAL #25)" /COMPLEMENTARY_INFO/DATE_DISPATCH_NOTICE,date_dispatch,VI.5,,Map to `date` -/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE,d_just_for_wo_pub_201425,D2.1,,"For each of the following, add a `Classification` object to the `tender.procurementMethodRationaleCodes` array. Set the classification's `.scheme` to `TED_PT_AWARD_CONTRACT_WITHOUT_CALL`, and set its `.id` and `.name` as follows (PROPOSAL #30)" +/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE,d_just_for_wo_pub_201425,D2.1,,"For each of the following, add a `Classification` object to the `tender.procurementMethodRationaleCodes` array. Set the classification's `.scheme` to 'TED_PT_AWARD_CONTRACT_WITHOUT_CALL', and set its `.id` and `.name` as follows (PROPOSAL #30)" /PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_NO_TENDERS_REQUESTS,d_no_tenders_in_response_call,,,Set `.id` to 'D_NO_TENDERS_REQUESTS' and `.name` to 'No tenders or no suitable tenders/requests to participate in response to a procedure with prior call for competition' /PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_PURE_RESEARCH,d_pure_research,,,"Set `.id` to 'D_PURE_RESEARCH' and `.name` to 'The contract involved is purely for the purpose of research, experiment, study or development under the conditions stated in the directive'" /PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_TECHNICAL,d_technical,,,"Set `.id` to 'D_TECHNICAL' and `.name` to 'The works, supplies or services can be provided only by a particular economic operator due to absence of competition for technical reasons'" diff --git a/output/mapping/F07_2014.csv b/output/mapping/F07_2014.csv index 66668c3f..3afb2321 100644 --- a/output/mapping/F07_2014.csv +++ b/output/mapping/F07_2014.csv @@ -32,7 +32,7 @@ xpath,label-key,index,comment,guidance /CONTRACTING_BODY/ADDRESS_PARTICIPATION_IDEM,address_to_above,,,"Add 'written' to `tender.submissionMethod`, and discard. Tenders or requests to participate must be submitted to the abovementioned address unless otherwised specified." /CONTRACTING_BODY/ADDRESS_PARTICIPATION,address_following,,,"Add 'written' to `tender.submissionMethod`, and map to `tender.submissionMethodDetails`\n\nIf *electronically via* is checked, this results in a loss of structure. (WARNING #27)" /CONTRACTING_BODY/URL_TOOL,url_communication_tools,,,Map to `tender.communication.atypicalToolUrl` (PROPOSAL #13) -/CONTRACTING_BODY/CE_ACTIVITY,mainactivity,I.6,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to 'TED_CE_ACTIVITY', and set its `.id` as follows: (PROPOSAL #10)\n\n(The codes are drawn from [Directive 2014/25/EU](https://eur-lex.europa.eu/legal-content/en/TXT/?uri=CELEX%3A32014L0025#L_2014094EN.01033901))" +/CONTRACTING_BODY/CE_ACTIVITY,mainactivity,I.6,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to 'TED_CE_ACTIVITY', and set its `.id` and/or `.name` as follows: (PROPOSAL #10)\n\n(The codes are drawn from [Directive 2014/25/EU](https://eur-lex.europa.eu/legal-content/en/TXT/?uri=CELEX%3A32014L0025#L_2014094EN.01033901))" /CONTRACTING_BODY/CE_ACTIVITY_OTHER,other_activity,,,Map to `.name` /OBJECT_CONTRACT,object,II,,"" /OBJECT_CONTRACT/TITLE,title_contract,II.1.1,,Map to `tender.title` @@ -63,25 +63,25 @@ xpath,label-key,index,comment,guidance /OBJECT_CONTRACT/OBJECT_DESCR/RENEWAL_DESCR,qs_formalities_renewal,,,Map to the lot's `.renewal.description` (PROPOSAL #22) /OBJECT_CONTRACT/OBJECT_DESCR/EU_PROGR_RELATED,_yes,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/budget_isEUFunded https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/budget_EUFunded,"Get the `Organization` object for the European Union; if none exists yet, [add a party](../operations#add-a-party), and set its `.name` to 'European Union'. Then, add 'funder' to its `.roles`.\n\nGet the `Finance` object for this project; if none exists yet, add a `Finance` object to the `planning.budget.finance` array, map to its `.description`, set its `.id`, set its `.financingParty.name` to 'European Union', and set its `.financingParty.id` to the party's `.id`. Then, add the lot's `.id` to its `.relatedLots`. (PROPOSAL #20)\n\nIn [future forms](https://github.com/eForms/eForms/issues/181#issuecomment-439861320), this field will be de-emphasized." /OBJECT_CONTRACT/OBJECT_DESCR/NO_EU_PROGR_RELATED,_no,,,"Discard. If there's no party with the role 'funder' and the name 'European Union', then the procurement isn't related to a project and/or programme financed by European Union funds." -/LEFTI,info_legal,III,,"The standard forms express exclusion grounds and selection criteria in this section as unstructured text. In the [introductory note](https://github.com/eForms/eForms/raw/master/20180604_eForms_consultation_introduction.docx) to its [eForms consultation](https://github.com/eForms/eForms), the European Commission proposes to create an extension to eForms to implement the [European Single Procurement Document (ESPD)](http://ec.europa.eu/growth/single-market/public-procurement/e-procurement/espd/), which expresses this information as structured data, following the model of the [Core Criterion and Core Evidence Vocabulary](https://joinup.ec.europa.eu/solution/core-criterion-and-core-evidence-vocabulary). With respect to OCDS, work on this section is postponed until either the extension to eForms is available or until the [ESPD Exchange Data Model](https://github.com/ESPD/ESPD-EDM) is stable." -/LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop,,,"" -/LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program,,,Set `tender.contractTerms.reservedExecution` to `true` +/LEFTI,info_legal,III,,"The standard forms express exclusion grounds and selection criteria in this section as unstructured text. In the introductory note to its [eForms consultation](https://github.com/eForms/eForms), the European Commission had proposed to create an extension to eForms to implement the [European Single Procurement Document (ESPD)](http://ec.europa.eu/growth/single-market/public-procurement/e-procurement/espd/) [Exchange Data Model](https://github.com/ESPD/ESPD-EDM), which expresses this information as structured data, following the model of the [Core Criterion and Core Evidence Vocabulary](https://joinup.ec.europa.eu/solution/core-criterion-and-core-evidence-vocabulary)." +/LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop,,,Set `tender.otherRequirements.reservedParticipation` to 'shelteredWorkshop' +/LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program,,,"Set `tender.contractTerms.hasReservedExecution` to `true`, and set `tender.contractTerms.reservedExecution` to 'Sheltered employment programmes'" /LEFTI/QUALIFICATION,qs_qualification,III.1.9,,"" -/LEFTI/QUALIFICATION/CONDITIONS,qs_conditions_qualify,,,"Add to the `tender.participationConditions.qualificationSystemConditions` array" -/LEFTI/QUALIFICATION/METHODS,qs_methods_verified,,,"Add to the `tender.participationConditions.qualificationSystemMethods` array" -/LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,"" -/LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,"" -/LEFTI/PERFORMANCE_CONDITIONS,other_conditions,III.2.2,,Map to `tender.contractTerms.termsPerformance` -/LEFTI/PERFORMANCE_STAFF_QUALIFICATION,staff_responsible_indicate,,,"" +/LEFTI/QUALIFICATION/CONDITIONS,qs_conditions_qualify,,,Add to the `tender.otherRequirements.qualificationSystemConditions` array +/LEFTI/QUALIFICATION/METHODS,qs_methods_verified,,,Add to the `tender.otherRequirements.qualificationSystemMethods` array +/LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,Set `tender.contractTerms.hasReservedExecution` to `true` +/LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,Map to `tender.contractTerms.reservedExecution` +/LEFTI/PERFORMANCE_CONDITIONS,other_conditions,III.2.2,,Map to `tender.contractTerms.performanceTerms` +/LEFTI/PERFORMANCE_STAFF_QUALIFICATION,staff_responsible_indicate,,,Set `tender.otherRequirements.requiresStaffNamesQualifications` to `true` /PROCEDURE,procedure,IV,,"" /PROCEDURE/EAUCTION_USED,eauction_will_used,,,Set `tender.techniques.hasElectronicAuction` to `true` /PROCEDURE/INFO_ADD_EAUCTION,eauction_info_addit,,,Map to `tender.techniques.electronicAuction.description` -/PROCEDURE/NOTICE_NUMBER_OJ,number_oj,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/release_relatedNotice,Discard. The *previous publication concerning this procedure* is the OCDS release with the same `ocid` as this release and with an earlier `date` that is nearest that of this release. +/PROCEDURE/NOTICE_NUMBER_OJ,number_oj,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/release_relatedNotice,Discard. The *previous publication concerning this procedure* is the OCDS release with the same `ocid` as this release and with the nearest earlier `date` to this release. /PROCEDURE/LANGUAGES,languages_allowed,IV.2.4,,"" /PROCEDURE/LANGUAGES/LANGUAGE,,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_SubmissionLanguages,Lowercase and add to the `tender.submissionTerms.languages` array /COMPLEMENTARY_INFO,info_complement,VI,,"" /COMPLEMENTARY_INFO/EORDERING,eordering_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows,Set `tender.contractTerms.hasElectronicOrdering` to `true` -/COMPLEMENTARY_INFO/EINVOICING,einvoicing_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows https://github.com/eForms/eForms/issues/88,Set `tender.contractTerms.electronicInvoicing` to 'allowed' +/COMPLEMENTARY_INFO/EINVOICING,einvoicing_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows https://github.com/eForms/eForms/issues/88,Set `tender.contractTerms.electronicInvoicingPolicy` to 'allowed' /COMPLEMENTARY_INFO/EPAYMENT,epayment_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows https://github.com/eForms/eForms/issues/88,Set `tender.contractTerms.hasElectronicPayment` to `true` /COMPLEMENTARY_INFO/INFO_ADD,info_additional,VI.3,,Map to `description` /COMPLEMENTARY_INFO/ADDRESS_REVIEW_BODY,appeals_body,VI.4.1,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ReviewProcedure,"[Add a party](../operations#add-a-party), and add 'reviewBody' to its `.roles`" diff --git a/output/mapping/F08_2014.csv b/output/mapping/F08_2014.csv index e5d14b54..78d9d978 100644 --- a/output/mapping/F08_2014.csv +++ b/output/mapping/F08_2014.csv @@ -32,7 +32,7 @@ xpath,label-key,index,comment,guidance /CONTRACTING_BODY/CA_TYPE_OTHER,other_type,,,Map to `.name` /CONTRACTING_BODY/CA_ACTIVITY,mainactivity,I.5,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to ['COFOG'](https://unstats.un.org/unsd/publications/catalogue?selectID=145), and set its `.id` and `.name` as follows: (PROPOSAL #10)" /CONTRACTING_BODY/CA_ACTIVITY_OTHER,other_activity,,,Map to `.name` -/CONTRACTING_BODY/CE_ACTIVITY,mainactivity,I.6,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to 'TED_CE_ACTIVITY', and set its `.id` as follows: (PROPOSAL #10)\n\n(The codes are drawn from [Directive 2014/25/EU](https://eur-lex.europa.eu/legal-content/en/TXT/?uri=CELEX%3A32014L0025#L_2014094EN.01033901))" +/CONTRACTING_BODY/CE_ACTIVITY,mainactivity,I.6,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to 'TED_CE_ACTIVITY', and set its `.id` and/or `.name` as follows: (PROPOSAL #10)\n\n(The codes are drawn from [Directive 2014/25/EU](https://eur-lex.europa.eu/legal-content/en/TXT/?uri=CELEX%3A32014L0025#L_2014094EN.01033901))" /CONTRACTING_BODY/CE_ACTIVITY_OTHER,other_activity,,,Map to `.name` /OBJECT_CONTRACT,object,II,,"" /OBJECT_CONTRACT/TITLE,title_contract,II.1.1,,Map to `tender.title` diff --git a/output/mapping/F12_2014.csv b/output/mapping/F12_2014.csv index 24ae219e..5a0a9e06 100644 --- a/output/mapping/F12_2014.csv +++ b/output/mapping/F12_2014.csv @@ -35,7 +35,7 @@ xpath,label-key,index,comment,guidance /CONTRACTING_BODY/CA_TYPE_OTHER,other_type,,,Map to `.name` /CONTRACTING_BODY/CA_ACTIVITY,mainactivity,I.5,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to ['COFOG'](https://unstats.un.org/unsd/publications/catalogue?selectID=145), and set its `.id` and `.name` as follows: (PROPOSAL #10)" /CONTRACTING_BODY/CA_ACTIVITY_OTHER,other_activity,,,Map to `.name` -/CONTRACTING_BODY/CE_ACTIVITY,mainactivity,I.6,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to 'TED_CE_ACTIVITY', and set its `.id` as follows: (PROPOSAL #10)\n\n(The codes are drawn from [Directive 2014/25/EU](https://eur-lex.europa.eu/legal-content/en/TXT/?uri=CELEX%3A32014L0025#L_2014094EN.01033901))" +/CONTRACTING_BODY/CE_ACTIVITY,mainactivity,I.6,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to 'TED_CE_ACTIVITY', and set its `.id` and/or `.name` as follows: (PROPOSAL #10)\n\n(The codes are drawn from [Directive 2014/25/EU](https://eur-lex.europa.eu/legal-content/en/TXT/?uri=CELEX%3A32014L0025#L_2014094EN.01033901))" /CONTRACTING_BODY/CE_ACTIVITY_OTHER,other_activity,,,Map to `.name` /OBJECT_CONTRACT,object,II,,"" /OBJECT_CONTRACT/TITLE,title_contract,II.1.1,,Map to `tender.title` @@ -50,10 +50,10 @@ xpath,label-key,index,comment,guidance /OBJECT_CONTRACT/OBJECT_DESCR/SHORT_DESCR,descr_procurement,II.2.4,,"Map to the lot's `.description`, and map to the item's `.description`" /OBJECT_CONTRACT/OBJECT_DESCR/EU_PROGR_RELATED,_yes,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/budget_isEUFunded https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/budget_EUFunded,"Get the `Organization` object for the European Union; if none exists yet, [add a party](../operations#add-a-party), and set its `.name` to 'European Union'. Then, add 'funder' to its `.roles`.\n\nGet the `Finance` object for this project; if none exists yet, add a `Finance` object to the `planning.budget.finance` array, map to its `.description`, set its `.id`, set its `.financingParty.name` to 'European Union', and set its `.financingParty.id` to the party's `.id`. Then, add the lot's `.id` to its `.relatedLots`. (PROPOSAL #20)\n\nIn [future forms](https://github.com/eForms/eForms/issues/181#issuecomment-439861320), this field will be de-emphasized." /OBJECT_CONTRACT/OBJECT_DESCR/NO_EU_PROGR_RELATED,_no,,,"Discard. If there's no party with the role 'funder' and the name 'European Union', then the procurement isn't related to a project and/or programme financed by European Union funds." -/LEFTI,info_legal,III,,"The standard forms express exclusion grounds and selection criteria in this section as unstructured text. In the [introductory note](https://github.com/eForms/eForms/raw/master/20180604_eForms_consultation_introduction.docx) to its [eForms consultation](https://github.com/eForms/eForms), the European Commission proposes to create an extension to eForms to implement the [European Single Procurement Document (ESPD)](http://ec.europa.eu/growth/single-market/public-procurement/e-procurement/espd/), which expresses this information as structured data, following the model of the [Core Criterion and Core Evidence Vocabulary](https://joinup.ec.europa.eu/solution/core-criterion-and-core-evidence-vocabulary). With respect to OCDS, work on this section is postponed until either the extension to eForms is available or until the [ESPD Exchange Data Model](https://github.com/ESPD/ESPD-EDM) is stable." -/LEFTI/CRITERIA_SELECTION,criteria_selection,III.1.10,,"" -/LEFTI/PARTICULAR_PROFESSION,dc_indicate_profession,,,"Map to `tender.contractTerms.reservedToProfession`" -/LEFTI/NO_PARTICULAR_PROFESSION,_no,,,"Set `tender.participationConditions.isReservedToProfession` to `false`" +/LEFTI,info_legal,III,,"The standard forms express exclusion grounds and selection criteria in this section as unstructured text. In the introductory note to its [eForms consultation](https://github.com/eForms/eForms), the European Commission had proposed to create an extension to eForms to implement the [European Single Procurement Document (ESPD)](http://ec.europa.eu/growth/single-market/public-procurement/e-procurement/espd/) [Exchange Data Model](https://github.com/ESPD/ESPD-EDM), which expresses this information as structured data, following the model of the [Core Criterion and Core Evidence Vocabulary](https://joinup.ec.europa.eu/solution/core-criterion-and-core-evidence-vocabulary)." +/LEFTI/CRITERIA_SELECTION,criteria_selection,III.1.10,, +/LEFTI/PARTICULAR_PROFESSION,dc_indicate_profession,,,Set `tender.contractTerms.hasReservedExecution` to `true` +/LEFTI/NO_PARTICULAR_PROFESSION,_no,,,Set `tender.contractTerms.isReservedToProfession` to `false` /PROCEDURE,procedure,IV,,"" /PROCEDURE/PT_OPEN,open,,,"Set `tender.procurementMethod` to 'open', and set `tender.procurementMethodDetails` to 'Open procedure'" /PROCEDURE/PT_RESTRICTED,type_restricted,,,"Set `tender.procurementMethod` to 'selective', and set `tender.procurementMethodDetails` to 'Restricted procedure'" diff --git a/output/mapping/F13_2014.csv b/output/mapping/F13_2014.csv index 3e39c2b9..74fd4f60 100644 --- a/output/mapping/F13_2014.csv +++ b/output/mapping/F13_2014.csv @@ -26,7 +26,7 @@ xpath,label-key,index,comment,guidance /CONTRACTING_BODY/CA_TYPE_OTHER,other_type,,,Map to `.name` /CONTRACTING_BODY/CA_ACTIVITY,mainactivity,I.5,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to ['COFOG'](https://unstats.un.org/unsd/publications/catalogue?selectID=145), and set its `.id` and `.name` as follows: (PROPOSAL #10)" /CONTRACTING_BODY/CA_ACTIVITY_OTHER,other_activity,,,Map to `.name` -/CONTRACTING_BODY/CE_ACTIVITY,mainactivity,I.6,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to 'TED_CE_ACTIVITY', and set its `.id` as follows: (PROPOSAL #10)\n\n(The codes are drawn from [Directive 2014/25/EU](https://eur-lex.europa.eu/legal-content/en/TXT/?uri=CELEX%3A32014L0025#L_2014094EN.01033901))" +/CONTRACTING_BODY/CE_ACTIVITY,mainactivity,I.6,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to 'TED_CE_ACTIVITY', and set its `.id` and/or `.name` as follows: (PROPOSAL #10)\n\n(The codes are drawn from [Directive 2014/25/EU](https://eur-lex.europa.eu/legal-content/en/TXT/?uri=CELEX%3A32014L0025#L_2014094EN.01033901))" /CONTRACTING_BODY/CE_ACTIVITY_OTHER,other_activity,,,Map to `.name` /OBJECT_CONTRACT,object,II,,"" /OBJECT_CONTRACT/TITLE,title_contract,II.1.1,,Map to `tender.title` @@ -45,7 +45,7 @@ xpath,label-key,index,comment,guidance /PROCEDURE/PT_OPEN,open,,,"Set `tender.procurementMethod` to 'open', and set `tender.procurementMethodDetails` to 'Open procedure'" /PROCEDURE/PT_RESTRICTED,type_restricted,,,"Set `tender.procurementMethod` to 'selective', and set `tender.procurementMethodDetails` to 'Restricted procedure'" /PROCEDURE/CRITERIA_EVALUATION,dc_criteria_evaluation,IV.1.9,,Map to `tender.awardCriteriaDetails` -/PROCEDURE/NOTICE_NUMBER_OJ,number_oj,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/release_relatedNotice,Discard. The *previous publication concerning this procedure* is the OCDS release with the same `ocid` as this release and with an earlier `date` that is nearest that of this release. +/PROCEDURE/NOTICE_NUMBER_OJ,number_oj,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/release_relatedNotice,Discard. The *previous publication concerning this procedure* is the OCDS release with the same `ocid` as this release and with the nearest earlier `date` to this release. /RESULTS,dc_results_contest,V,,"" /RESULTS/NO_AWARDED_PRIZE,_yes,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/contract_statusDetails,Set the award's `.status` to 'unsuccessful' /RESULTS/NO_AWARDED_PRIZE/PROCUREMENT_DISCONTINUED,award_discontinued,,,Set the award's `.statusDetails` to 'discontinued' @@ -63,7 +63,7 @@ xpath,label-key,index,comment,guidance /RESULTS/AWARDED_PRIZE/WINNERS/WINNER/ADDRESS_WINNER/NATIONALID,national_id,,,"Map to `.identifier.id`, and set `.identifier.scheme`" /RESULTS/AWARDED_PRIZE/WINNERS/WINNER/ADDRESS_WINNER/ADDRESS,address_postal,,,/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/ADDRESS /RESULTS/AWARDED_PRIZE/WINNERS/WINNER/ADDRESS_WINNER/TOWN,address_town,,,/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/TOWN -/RESULTS/AWARDED_PRIZE/WINNERS/WINNER/ADDRESS_WINNER/NUTS,nutscode,,https://github.com/open-contracting-archive/trade/blob/master/draft_extensions/parties_details_NUTS,"Take the NUTS code in the `CODE` attribute, and map to `.address.region`\n\nThere's an open issue ([#739](https://github.com/open-contracting/standard/issues/739)) about region codes. (ISSUE)" +/RESULTS/AWARDED_PRIZE/WINNERS/WINNER/ADDRESS_WINNER/NUTS,nutscode,,https://github.com/open-contracting-archive/trade/blob/master/draft_extensions/parties_details_NUTS,/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/NUTS /RESULTS/AWARDED_PRIZE/WINNERS/WINNER/ADDRESS_WINNER/POSTAL_CODE,address_postcode,,,/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/POSTAL_CODE /RESULTS/AWARDED_PRIZE/WINNERS/WINNER/ADDRESS_WINNER/COUNTRY,address_country,,,/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/COUNTRY /RESULTS/AWARDED_PRIZE/WINNERS/WINNER/ADDRESS_WINNER/PHONE,address_phone,,,/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/PHONE diff --git a/output/mapping/F14_2014.csv b/output/mapping/F14_2014.csv index 35559896..12fad4f8 100644 --- a/output/mapping/F14_2014.csv +++ b/output/mapping/F14_2014.csv @@ -42,7 +42,7 @@ xpath,label-key,index,comment,guidance /OBJECT_CONTRACT/SHORT_DESCR,descr_short,II.1.4,,Map to `tender.description` /COMPLEMENTARY_INFO,info_complement,VI,,"" /COMPLEMENTARY_INFO/DATE_DISPATCH_NOTICE,date_dispatch,VI.5,,Map to `date` -/COMPLEMENTARY_INFO/NOTICE_NUMBER_OJ,number_oj,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/release_relatedNotice,"Discard. The *original notice reference* is the OCDS release with the same `ocid` as this release, with 'tender' in its `tag`, and with an earlier `date` that is nearest that of this release." +/COMPLEMENTARY_INFO/NOTICE_NUMBER_OJ,number_oj,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/release_relatedNotice,"Discard. The *original notice reference* is the OCDS release with the same `ocid` as this release, with 'tender' in its `tag`, and with the nearest earlier `date` to this release." /CHANGES,changes,VII,,"Add an `Amendment` object to the `tender.amendments` array, and set its `.id`." /CHANGES/CHANGE,icar_text_corrected,VII.1.2,,"" /CHANGES/CHANGE/WHERE,,,, diff --git a/output/mapping/F15_2014.csv b/output/mapping/F15_2014.csv index 5f96dac2..13d7e0e1 100644 --- a/output/mapping/F15_2014.csv +++ b/output/mapping/F15_2014.csv @@ -22,7 +22,7 @@ xpath,label-key,index,comment,guidance /CONTRACTING_BODY/CA_TYPE_OTHER,other_type,,,Map to `.name` /CONTRACTING_BODY/CA_ACTIVITY,mainactivity,I.5,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to ['COFOG'](https://unstats.un.org/unsd/publications/catalogue?selectID=145), and set its `.id` and `.name` as follows: (PROPOSAL #10)" /CONTRACTING_BODY/CA_ACTIVITY_OTHER,other_activity,,,Map to `.name` -/CONTRACTING_BODY/CE_ACTIVITY,mainactivity,I.6,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to 'TED_CE_ACTIVITY', and set its `.id` as follows: (PROPOSAL #10)\n\n(The codes are drawn from [Directive 2014/25/EU](https://eur-lex.europa.eu/legal-content/en/TXT/?uri=CELEX%3A32014L0025#L_2014094EN.01033901))" +/CONTRACTING_BODY/CE_ACTIVITY,mainactivity,I.6,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to 'TED_CE_ACTIVITY', and set its `.id` and/or `.name` as follows: (PROPOSAL #10)\n\n(The codes are drawn from [Directive 2014/25/EU](https://eur-lex.europa.eu/legal-content/en/TXT/?uri=CELEX%3A32014L0025#L_2014094EN.01033901))" /CONTRACTING_BODY/CE_ACTIVITY_OTHER,other_activity,,,Map to `.name` /OBJECT_CONTRACT,object,II,,"" /OBJECT_CONTRACT/TITLE,title_contract,II.1.1,,Map to `tender.title` @@ -58,8 +58,8 @@ xpath,label-key,index,comment,guidance /OBJECT_CONTRACT/OBJECT_DESCR/DIRECTIVE_2014_24_EU/AC/AC_COST,award_lowest_cost,,,"Add an `AwardCriterion` object to the lot's `.awardCriteria.criteria` array, and set its `.type` to 'cost'." /OBJECT_CONTRACT/OBJECT_DESCR/DIRECTIVE_2014_24_EU/AC/AC_PRICE,price,,,"Add an `AwardCriterion` object to the lot's `.awardCriteria.criteria` array, and set its `.type` to 'price'." /OBJECT_CONTRACT/OBJECT_DESCR/DIRECTIVE_2014_24_EU/AC/AC_PRICE/AC_WEIGHTING,weighting,,,Map to the criterion's `.description` -/OBJECT_CONTRACT/OBJECT_DESCR/DIRECTIVE_2014_25_EU,,,,/OBJECT_CONTRACT/OBJECT_DESCR/DIRECTIVE_2014_24_EU -/OBJECT_CONTRACT/OBJECT_DESCR/DIRECTIVE_2014_25_EU/AC,,,,/OBJECT_CONTRACT/OBJECT_DESCR/DIRECTIVE_2014_24_EU/AC +/OBJECT_CONTRACT/OBJECT_DESCR/DIRECTIVE_2014_25_EU,,,,"" +/OBJECT_CONTRACT/OBJECT_DESCR/DIRECTIVE_2014_25_EU/AC,,,,"" /OBJECT_CONTRACT/OBJECT_DESCR/DIRECTIVE_2014_25_EU/AC/AC_QUALITY,,,,/OBJECT_CONTRACT/OBJECT_DESCR/DIRECTIVE_2014_24_EU/AC/AC_QUALITY /OBJECT_CONTRACT/OBJECT_DESCR/DIRECTIVE_2014_25_EU/AC/AC_COST,,,,/OBJECT_CONTRACT/OBJECT_DESCR/DIRECTIVE_2014_24_EU/AC/AC_COST /OBJECT_CONTRACT/OBJECT_DESCR/DIRECTIVE_2014_25_EU/AC/AC_PRICE,,,,/OBJECT_CONTRACT/OBJECT_DESCR/DIRECTIVE_2014_24_EU/AC/AC_PRICE @@ -93,7 +93,7 @@ xpath,label-key,index,comment,guidance /PROCEDURE/FRAMEWORK,notice_involves_framework,,,Set `tender.techniques.hasFrameworkAgreement` to `true` /PROCEDURE/CONTRACT_COVERED_GPA,_yes,,,Add 'GPA' to `tender.coveredBy` /PROCEDURE/NO_CONTRACT_COVERED_GPA,_no,,,"Discard. If 'GPA' isn't in `tender.coveredBy`, then the procurement isn't covered by the GPA." -/PROCEDURE/NOTICE_NUMBER_OJ,number_oj,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/release_relatedNotice,Discard. The *previous publication concerning this procedure* is the OCDS release with the same `ocid` as this release and with an earlier `date` that is nearest that of this release. +/PROCEDURE/NOTICE_NUMBER_OJ,number_oj,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/release_relatedNotice,Discard. The *previous publication concerning this procedure* is the OCDS release with the same `ocid` as this release and with the nearest earlier `date` to this release. /AWARD_CONTRACT,award_of_contract_concess,V,,Add an `Award` object to the `awards` array /AWARD_CONTRACT/@ITEM,,,,Discard /AWARD_CONTRACT/CONTRACT_NO,contract_number,,,Map to the award's `.id` @@ -154,7 +154,7 @@ xpath,label-key,index,comment,guidance /COMPLEMENTARY_INFO/REVIEW_PROCEDURE,appeals_deadline,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ReviewProcedure,Map to `tender.reviewDetails` (PROPOSAL #6) /COMPLEMENTARY_INFO/ADDRESS_REVIEW_INFO,appeals_info,VI.4.4,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ReviewProcedure,"[Add a party](../operations#add-a-party), and add 'reviewContactPoint' to its `.roles` (PROPOSAL #25)" /COMPLEMENTARY_INFO/DATE_DISPATCH_NOTICE,date_dispatch,VI.5,,Map to `date` -/PROCEDURE/DIRECTIVE_2014_24_EU/PT_NEGOTIATED_WITHOUT_PUBLICATION/D_ACCORDANCE_ARTICLE,d_just_for_wo_pub_201424,D1.1,,"For each of the following, add a `Classification` object to the `tender.procurementMethodRationaleCodes` array. Set the classification's `.scheme` to `TED_PT_AWARD_CONTRACT_WITHOUT_CALL`, and set its `.id` and `.name` as follows (PROPOSAL #30)" +/PROCEDURE/DIRECTIVE_2014_24_EU/PT_NEGOTIATED_WITHOUT_PUBLICATION/D_ACCORDANCE_ARTICLE,d_just_for_wo_pub_201424,D1.1,,"For each of the following, add a `Classification` object to the `tender.procurementMethodRationaleCodes` array. Set the classification's `.scheme` to 'TED_PT_AWARD_CONTRACT_WITHOUT_CALL', and set its `.id` and `.name` as follows (PROPOSAL #30)" /PROCEDURE/DIRECTIVE_2014_24_EU/PT_NEGOTIATED_WITHOUT_PUBLICATION/D_ACCORDANCE_ARTICLE/D_PROC_OPEN,d_proc_open,,,Set `.id` to 'D_PROC_OPEN' and `.name` to 'No tenders or no suitable tenders/requests to participate in response to open procedure' /PROCEDURE/DIRECTIVE_2014_24_EU/PT_NEGOTIATED_WITHOUT_PUBLICATION/D_ACCORDANCE_ARTICLE/D_PROC_RESTRICTED,d_proc_restricted,,,Set `.id` to 'D_PROC_RESTRICTED' and `.name` to 'No tenders or no suitable tenders/requests to participate in response to restricted procedure' /PROCEDURE/DIRECTIVE_2014_24_EU/PT_NEGOTIATED_WITHOUT_PUBLICATION/D_ACCORDANCE_ARTICLE/D_MANUF_FOR_RESEARCH,d_manuf_for_research,,,"Set `.id` to 'D_MANUF_FOR_RESEARCH' and `.name` to 'The products involved are manufactured purely for the purpose of research, experiment, study or development under the conditions stated in the directive'" @@ -171,7 +171,7 @@ xpath,label-key,index,comment,guidance /PROCEDURE/DIRECTIVE_2014_24_EU/PT_NEGOTIATED_WITHOUT_PUBLICATION/D_JUSTIFICATION,,,,Map to `tender.procurementMethodRationale` /PROCEDURE/DIRECTIVE_2014_24_EU/PT_AWARD_CONTRACT_WITHOUT_CALL/D_OUTSIDE_SCOPE,d_outside_scope,,,Set `.id` to 'D_OUTSIDE_SCOPE' and `.name` to 'The procurement falls outside the scope of application of the directive' /PROCEDURE/DIRECTIVE_2014_24_EU/PT_AWARD_CONTRACT_WITHOUT_CALL/D_JUSTIFICATION,d_explain,,,Map to `tender.procurementMethodRationale` -/PROCEDURE/DIRECTIVE_2014_25_EU/PT_NEGOTIATED_WITHOUT_PUBLICATION/D_ACCORDANCE_ARTICLE,d_just_for_wo_pub_201425,D2.1,,"For each of the following, add a `Classification` object to the `tender.procurementMethodRationaleCodes` array. Set the classification's `.scheme` to `TED_PT_AWARD_CONTRACT_WITHOUT_CALL`, and set its `.id` and `.name` as follows (PROPOSAL #30)" +/PROCEDURE/DIRECTIVE_2014_25_EU/PT_NEGOTIATED_WITHOUT_PUBLICATION/D_ACCORDANCE_ARTICLE,d_just_for_wo_pub_201425,D2.1,,"For each of the following, add a `Classification` object to the `tender.procurementMethodRationaleCodes` array. Set the classification's `.scheme` to 'TED_PT_AWARD_CONTRACT_WITHOUT_CALL', and set its `.id` and `.name` as follows (PROPOSAL #30)" /PROCEDURE/DIRECTIVE_2014_25_EU/PT_NEGOTIATED_WITHOUT_PUBLICATION/D_ACCORDANCE_ARTICLE/D_NO_TENDERS_REQUESTS,d_no_tenders_in_response_call,,,Set `.id` to 'D_NO_TENDERS_REQUESTS' and `.name` to 'No tenders or no suitable tenders/requests to participate in response to a procedure with prior call for competition' /PROCEDURE/DIRECTIVE_2014_25_EU/PT_NEGOTIATED_WITHOUT_PUBLICATION/D_ACCORDANCE_ARTICLE/D_PURE_RESEARCH,d_pure_research,,,"Set `.id` to 'D_PURE_RESEARCH' and `.name` to 'The contract involved is purely for the purpose of research, experiment, study or development under the conditions stated in the directive'" /PROCEDURE/DIRECTIVE_2014_25_EU/PT_NEGOTIATED_WITHOUT_PUBLICATION/D_ACCORDANCE_ARTICLE/D_TECHNICAL,d_technical,,,"Set `.id` to 'D_TECHNICAL' and `.name` to 'The works, supplies or services can be provided only by a particular economic operator due to absence of competition for technical reasons'" @@ -209,7 +209,7 @@ xpath,label-key,index,comment,guidance /PROCEDURE/DIRECTIVE_2009_81_EC/PT_AWARD_CONTRACT_WITHOUT_CALL/D_SERVICES_LISTED,d_serv_listed_a2b,,, /PROCEDURE/DIRECTIVE_2009_81_EC/PT_AWARD_CONTRACT_WITHOUT_CALL/D_OUTSIDE_SCOPE,,,, /PROCEDURE/DIRECTIVE_2009_81_EC/PT_AWARD_CONTRACT_WITHOUT_CALL/D_JUSTIFICATION,,,, -/PROCEDURE/DIRECTIVE_2014_23_EU/PT_AWARD_CONTRACT_WITHOUT_PUBLICATION/D_ACCORDANCE_ARTICLE,d_just_for_wo_pub_201423,D4.1,,"For each of the following, add a `Classification` object to the `tender.procurementMethodRationaleCodes` array. Set the classification's `.scheme` to `TED_PT_AWARD_CONTRACT_WITHOUT_CALL`, and set its `.id` and `.name` as follows (PROPOSAL #30)" +/PROCEDURE/DIRECTIVE_2014_23_EU/PT_AWARD_CONTRACT_WITHOUT_PUBLICATION/D_ACCORDANCE_ARTICLE,d_just_for_wo_pub_201423,D4.1,,"For each of the following, add a `Classification` object to the `tender.procurementMethodRationaleCodes` array. Set the classification's `.scheme` to 'TED_PT_AWARD_CONTRACT_WITHOUT_CALL', and set its `.id` and `.name` as follows (PROPOSAL #30)" /PROCEDURE/DIRECTIVE_2014_23_EU/PT_AWARD_CONTRACT_WITHOUT_PUBLICATION/D_ACCORDANCE_ARTICLE/D_NO_TENDERS_REQUESTS,d_no_applications,,,"Set `.id` to 'D_NO_TENDERS_REQUESTS' and `.name` to 'No applications, no tenders or no suitable tenders/applications in response to a prior concession award procedure'" /PROCEDURE/DIRECTIVE_2014_23_EU/PT_AWARD_CONTRACT_WITHOUT_PUBLICATION/D_ACCORDANCE_ARTICLE/D_ARTISTIC,d_artistic_concess,,,Set `.id` to 'D_ARTISTIC' and `.name` to 'The services can be provided only by a particular economic operator due to concession aiming at the creation or acquisition of a unique work of art or artistic performance' /PROCEDURE/DIRECTIVE_2014_23_EU/PT_AWARD_CONTRACT_WITHOUT_PUBLICATION/D_ACCORDANCE_ARTICLE/D_TECHNICAL,d_technical,,,Set `.id` to 'D_ARTISTIC' and `.name` to 'The services can be provided only by a particular economic operator due to absence of competition for technical reasons' diff --git a/output/mapping/F21_2014.csv b/output/mapping/F21_2014.csv index 0b1556b3..9b59b281 100644 --- a/output/mapping/F21_2014.csv +++ b/output/mapping/F21_2014.csv @@ -79,25 +79,25 @@ xpath,label-key,index,comment,guidance /OBJECT_CONTRACT/OBJECT_DESCR/NO_EU_PROGR_RELATED,_no,,,"Discard. If there's no party with the role 'funder' and the name 'European Union', then the procurement isn't related to a project and/or programme financed by European Union funds." /OBJECT_CONTRACT/OBJECT_DESCR/INFO_ADD,info_additional,II.2.14,,"Append to the lot's `.description`, and append to the item's `.description`\n\nThis results in a loss of structure. (WARNING #28)" /OBJECT_CONTRACT/DATE_PUBLICATION_NOTICE,date_of_contract_notice,II.3,,Map to `tender.communication.futureNoticeDate` -/LEFTI,info_legal,III,,"The standard forms express exclusion grounds and selection criteria in this section as unstructured text. In the [introductory note](https://github.com/eForms/eForms/raw/master/20180604_eForms_consultation_introduction.docx) to its [eForms consultation](https://github.com/eForms/eForms), the European Commission proposes to create an extension to eForms to implement the [European Single Procurement Document (ESPD)](http://ec.europa.eu/growth/single-market/public-procurement/e-procurement/espd/), which expresses this information as structured data, following the model of the [Core Criterion and Core Evidence Vocabulary](https://joinup.ec.europa.eu/solution/core-criterion-and-core-evidence-vocabulary). With respect to OCDS, work on this section is postponed until either the extension to eForms is available or until the [ESPD Exchange Data Model](https://github.com/ESPD/ESPD-EDM) is stable." -/LEFTI/RULES_CRITERIA,descr_brief_rules,,,"" -/LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop,,,"" -/LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program,,,Set `tender.contractTerms.reservedExecution` to `true` -/LEFTI/RESERVED_ORGANISATIONS_SERVICE_MISSION,reserved_public_mission,,,"Set `tender.participationConditions.reservedTo` to 'publicServiceMission'" -/LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,"" -/LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,"" -/LEFTI/PERFORMANCE_CONDITIONS,other_conditions,III.2.2,,Map to `tender.contractTerms.termsPerformance` -/LEFTI/PERFORMANCE_STAFF_QUALIFICATION,staff_responsible_indicate,,,"" +/LEFTI,info_legal,III,,"The standard forms express exclusion grounds and selection criteria in this section as unstructured text. In the introductory note to its [eForms consultation](https://github.com/eForms/eForms), the European Commission had proposed to create an extension to eForms to implement the [European Single Procurement Document (ESPD)](http://ec.europa.eu/growth/single-market/public-procurement/e-procurement/espd/) [Exchange Data Model](https://github.com/ESPD/ESPD-EDM), which expresses this information as structured data, following the model of the [Core Criterion and Core Evidence Vocabulary](https://joinup.ec.europa.eu/solution/core-criterion-and-core-evidence-vocabulary)." +/LEFTI/RULES_CRITERIA,descr_brief_rules,,,Map to `tender.otherRequirements.reductionCriteria` +/LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop,,,Set `tender.otherRequirements.reservedParticipation` to 'shelteredWorkshop' +/LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program,,,"Set `tender.contractTerms.hasReservedExecution` to `true`, and set `tender.contractTerms.reservedExecution` to 'Sheltered employment programmes'" +/LEFTI/RESERVED_ORGANISATIONS_SERVICE_MISSION,reserved_public_mission,,,Set `tender.selectionCriteria.reservedParticipation` to 'publicServiceMissionOrganization' +/LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,Set `tender.contractTerms.hasReservedExecution` to `true` +/LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,Map to `tender.contractTerms.reservedExecution` +/LEFTI/PERFORMANCE_CONDITIONS,other_conditions,III.2.2,,Map to `tender.contractTerms.performanceTerms` +/LEFTI/PERFORMANCE_STAFF_QUALIFICATION,staff_responsible_indicate,,,Set `tender.otherRequirements.requiresStaffNamesQualifications` to `true` /PROCEDURE,procedure,IV,,"" /PROCEDURE/PT_OPEN,proctype_open,,,"Set `tender.procurementMethod` to 'open', and set `tender.procurementMethodDetails` to 'Open procedure'" /PROCEDURE/PT_RESTRICTED,proctype_restricted,,,"Set `tender.procurementMethod` to 'selective', and set `tender.procurementMethodDetails` to 'Restricted procedure'" /PROCEDURE/PT_INVOLVING_NEGOTIATION,proctype_negotiations_involved,,,"Set `tender.procurementMethod` to 'selective', and set `tender.procurementMethodDetails` to 'Procedure involving negotiations'" /PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL,award_wo_prior_pub_d1,,,"Set `tender.procurementMethod` to 'limited', and set `tender.procurementMethodDetails` to 'Award procedure without prior publication of a call for competition'.\n\n**F03, F21:** See [Annex D1](#annex-d1-general-procurement)\n\n**F06, F22:** See [Annex D2](#annex-d2-utilities)" /PROCEDURE/FRAMEWORK,notice_involves_framework,,,Set `tender.techniques.hasFrameworkAgreement` to `true` -/PROCEDURE/FRAMEWORK/JUSTIFICATION,framework_just_four,,,Map to `tender.techniques.frameworkAgreement.durationRationale` +/PROCEDURE/FRAMEWORK/JUSTIFICATION,framework_just_four,,,Map to `tender.techniques.frameworkAgreement.periodRationale` /PROCEDURE/URL_NATIONAL_PROCEDURE,url_national_rules,,, /PROCEDURE/MAIN_FEATURES_AWARD,award_main_features,IV.1.11,,Map to `tender.awardCriteriaDetails` -/PROCEDURE/NOTICE_NUMBER_OJ,number_oj,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/release_relatedNotice,Discard. The *previous publication concerning this procedure* is the OCDS release with the same `ocid` as this release and with an earlier `date` that is nearest that of this release. +/PROCEDURE/NOTICE_NUMBER_OJ,number_oj,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/release_relatedNotice,Discard. The *previous publication concerning this procedure* is the OCDS release with the same `ocid` as this release and with the nearest earlier `date` to this release. /PROCEDURE/DATE_RECEIPT_TENDERS,date,,,Map to the date component of `tender.tenderPeriod.endDate` /PROCEDURE/TIME_RECEIPT_TENDERS,time,,,Map to the time component of `tender.tenderPeriod.endDate` /PROCEDURE/LANGUAGES,languages_allowed,IV.2.4,,"" @@ -152,7 +152,7 @@ xpath,label-key,index,comment,guidance /AWARD_CONTRACT/AWARDED_CONTRACT/INFO_ADD_SUBCONTRACTING,subcontr_descr_short,,,Map to the award's `.subcontracting.details` (PROPOSAL #37) /COMPLEMENTARY_INFO,info_complement,VI,,"" /COMPLEMENTARY_INFO/EORDERING,eordering_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows,Set `tender.contractTerms.hasElectronicOrdering` to `true` -/COMPLEMENTARY_INFO/EINVOICING,einvoicing_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows https://github.com/eForms/eForms/issues/88,Set `tender.contractTerms.electronicInvoicing` to 'allowed' +/COMPLEMENTARY_INFO/EINVOICING,einvoicing_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows https://github.com/eForms/eForms/issues/88,Set `tender.contractTerms.electronicInvoicingPolicy` to 'allowed' /COMPLEMENTARY_INFO/EPAYMENT,epayment_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows https://github.com/eForms/eForms/issues/88,Set `tender.contractTerms.hasElectronicPayment` to `true` /COMPLEMENTARY_INFO/INFO_ADD,info_additional,VI.3,,Map to `description` /COMPLEMENTARY_INFO/ADDRESS_REVIEW_BODY,appeals_body,VI.4.1,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ReviewProcedure,"[Add a party](../operations#add-a-party), and add 'reviewBody' to its `.roles`" @@ -169,7 +169,7 @@ xpath,label-key,index,comment,guidance /COMPLEMENTARY_INFO/REVIEW_PROCEDURE,appeals_deadline,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ReviewProcedure,Map to `tender.reviewDetails` (PROPOSAL #6) /COMPLEMENTARY_INFO/ADDRESS_REVIEW_INFO,appeals_info,VI.4.4,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ReviewProcedure,"[Add a party](../operations#add-a-party), and add 'reviewContactPoint' to its `.roles` (PROPOSAL #25)" /COMPLEMENTARY_INFO/DATE_DISPATCH_NOTICE,date_dispatch,VI.5,,Map to `date` -/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE,d_just_for_wo_pub_201424,D1.1,,"For each of the following, add a `Classification` object to the `tender.procurementMethodRationaleCodes` array. Set the classification's `.scheme` to `TED_PT_AWARD_CONTRACT_WITHOUT_CALL`, and set its `.id` and `.name` as follows (PROPOSAL #30)" +/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE,d_just_for_wo_pub_201424,D1.1,,"For each of the following, add a `Classification` object to the `tender.procurementMethodRationaleCodes` array. Set the classification's `.scheme` to 'TED_PT_AWARD_CONTRACT_WITHOUT_CALL', and set its `.id` and `.name` as follows (PROPOSAL #30)" /PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_PROC_OPEN,d_proc_open,,,Set `.id` to 'D_PROC_OPEN' and `.name` to 'No tenders or no suitable tenders/requests to participate in response to open procedure' /PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_PROC_RESTRICTED,d_proc_restricted,,,Set `.id` to 'D_PROC_RESTRICTED' and `.name` to 'No tenders or no suitable tenders/requests to participate in response to restricted procedure' /PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_TECHNICAL,d_technical,,,"Set `.id` to 'D_TECHNICAL' and `.name` to 'The works, supplies or services can be provided only by a particular economic operator due to absence of competition for technical reasons'" diff --git a/output/mapping/F22_2014.csv b/output/mapping/F22_2014.csv index 904d0962..3d101cc5 100644 --- a/output/mapping/F22_2014.csv +++ b/output/mapping/F22_2014.csv @@ -32,7 +32,7 @@ xpath,label-key,index,comment,guidance /CONTRACTING_BODY/ADDRESS_PARTICIPATION_IDEM,address_to_above,,,"Add 'written' to `tender.submissionMethod`, and discard. Tenders or requests to participate must be submitted to the abovementioned address unless otherwised specified." /CONTRACTING_BODY/ADDRESS_PARTICIPATION,address_following,,,"Add 'written' to `tender.submissionMethod`, and map to `tender.submissionMethodDetails`\n\nIf *electronically via* is checked, this results in a loss of structure. (WARNING #27)" /CONTRACTING_BODY/URL_TOOL,url_communication_tools,,,Map to `tender.communication.atypicalToolUrl` (PROPOSAL #13) -/CONTRACTING_BODY/CE_ACTIVITY,mainactivity,I.6,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to 'TED_CE_ACTIVITY', and set its `.id` as follows: (PROPOSAL #10)\n\n(The codes are drawn from [Directive 2014/25/EU](https://eur-lex.europa.eu/legal-content/en/TXT/?uri=CELEX%3A32014L0025#L_2014094EN.01033901))" +/CONTRACTING_BODY/CE_ACTIVITY,mainactivity,I.6,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to 'TED_CE_ACTIVITY', and set its `.id` and/or `.name` as follows: (PROPOSAL #10)\n\n(The codes are drawn from [Directive 2014/25/EU](https://eur-lex.europa.eu/legal-content/en/TXT/?uri=CELEX%3A32014L0025#L_2014094EN.01033901))" /CONTRACTING_BODY/CE_ACTIVITY_OTHER,other_activity,,,Map to `.name` /OBJECT_CONTRACT,object,II,,"" /OBJECT_CONTRACT/@ITEM,,,,Discard @@ -82,28 +82,28 @@ xpath,label-key,index,comment,guidance /OBJECT_CONTRACT/OBJECT_DESCR/NO_EU_PROGR_RELATED,_no,,,"Discard. If there's no party with the role 'funder' and the name 'European Union', then the procurement isn't related to a project and/or programme financed by European Union funds." /OBJECT_CONTRACT/OBJECT_DESCR/INFO_ADD,info_additional,II.2.14,,"Append to the lot's `.description`, and append to the item's `.description`\n\nThis results in a loss of structure. (WARNING #28)" /OBJECT_CONTRACT/DATE_PUBLICATION_NOTICE,date_of_contract_notice,II.3,,Map to `tender.communication.futureNoticeDate` -/LEFTI,info_legal,III,,"The standard forms express exclusion grounds and selection criteria in this section as unstructured text. In the [introductory note](https://github.com/eForms/eForms/raw/master/20180604_eForms_consultation_introduction.docx) to its [eForms consultation](https://github.com/eForms/eForms), the European Commission proposes to create an extension to eForms to implement the [European Single Procurement Document (ESPD)](http://ec.europa.eu/growth/single-market/public-procurement/e-procurement/espd/), which expresses this information as structured data, following the model of the [Core Criterion and Core Evidence Vocabulary](https://joinup.ec.europa.eu/solution/core-criterion-and-core-evidence-vocabulary). With respect to OCDS, work on this section is postponed until either the extension to eForms is available or until the [ESPD Exchange Data Model](https://github.com/ESPD/ESPD-EDM) is stable." -/LEFTI/RULES_CRITERIA,descr_brief_rules,,,"" -/LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop,,,"" -/LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program,,,Set `tender.contractTerms.reservedExecution` to `true` -/LEFTI/RESERVED_ORGANISATIONS_SERVICE_MISSION,reserved_public_mission_25,,,"" +/LEFTI,info_legal,III,,"The standard forms express exclusion grounds and selection criteria in this section as unstructured text. In the introductory note to its [eForms consultation](https://github.com/eForms/eForms), the European Commission had proposed to create an extension to eForms to implement the [European Single Procurement Document (ESPD)](http://ec.europa.eu/growth/single-market/public-procurement/e-procurement/espd/) [Exchange Data Model](https://github.com/ESPD/ESPD-EDM), which expresses this information as structured data, following the model of the [Core Criterion and Core Evidence Vocabulary](https://joinup.ec.europa.eu/solution/core-criterion-and-core-evidence-vocabulary)." +/LEFTI/RULES_CRITERIA,descr_brief_rules,,,Map to `tender.otherRequirements.reductionCriteria` +/LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop,,,Set `tender.otherRequirements.reservedParticipation` to 'shelteredWorkshop' +/LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program,,,"Set `tender.contractTerms.hasReservedExecution` to `true`, and set `tender.contractTerms.reservedExecution` to 'Sheltered employment programmes'" +/LEFTI/RESERVED_ORGANISATIONS_SERVICE_MISSION,reserved_public_mission_25,,,Set `tender.selectionCriteria.reservedParticipation` to 'publicServiceMissionOrganization' /LEFTI/QUALIFICATION,qs_qualification,III.1.9,,"" -/LEFTI/QUALIFICATION/CONDITIONS,qs_conditions_qualify,,,"" -/LEFTI/QUALIFICATION/METHODS,qs_methods_verified,,,"" -/LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,"" -/LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,"" -/LEFTI/PERFORMANCE_CONDITIONS,other_conditions,III.2.2,,Map to `tender.contractTerms.termsPerformance` -/LEFTI/PERFORMANCE_STAFF_QUALIFICATION,staff_responsible_indicate,,,"" +/LEFTI/QUALIFICATION/CONDITIONS,qs_conditions_qualify,,,Add to the `tender.otherRequirements.qualificationSystemConditions` array +/LEFTI/QUALIFICATION/METHODS,qs_methods_verified,,,Add to the `tender.otherRequirements.qualificationSystemMethods` array +/LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,Set `tender.contractTerms.hasReservedExecution` to `true` +/LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,Map to `tender.contractTerms.reservedExecution` +/LEFTI/PERFORMANCE_CONDITIONS,other_conditions,III.2.2,,Map to `tender.contractTerms.performanceTerms` +/LEFTI/PERFORMANCE_STAFF_QUALIFICATION,staff_responsible_indicate,,,Set `tender.otherRequirements.requiresStaffNamesQualifications` to `true` /PROCEDURE,procedure,IV,,"" /PROCEDURE/PT_OPEN,proctype_open,,,"Set `tender.procurementMethod` to 'open', and set `tender.procurementMethodDetails` to 'Open procedure'" /PROCEDURE/PT_RESTRICTED,proctype_restricted,,,"Set `tender.procurementMethod` to 'selective', and set `tender.procurementMethodDetails` to 'Restricted procedure'" /PROCEDURE/PT_INVOLVING_NEGOTIATION,proctype_negotiations_involved,,,"Set `tender.procurementMethod` to 'selective', and set `tender.procurementMethodDetails` to 'Procedure involving negotiations'" /PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL,award_wo_prior_pub_d1,,,"Set `tender.procurementMethod` to 'limited', and set `tender.procurementMethodDetails` to 'Award procedure without prior publication of a call for competition'.\n\n**F03, F21:** See [Annex D1](#annex-d1-general-procurement)\n\n**F06, F22:** See [Annex D2](#annex-d2-utilities)" /PROCEDURE/FRAMEWORK,notice_involves_framework,,,Set `tender.techniques.hasFrameworkAgreement` to `true` -/PROCEDURE/FRAMEWORK/JUSTIFICATION,framework_just_eight,,,Map to `tender.techniques.frameworkAgreement.durationRationale` +/PROCEDURE/FRAMEWORK/JUSTIFICATION,framework_just_eight,,,Map to `tender.techniques.frameworkAgreement.periodRationale` /PROCEDURE/URL_NATIONAL_PROCEDURE,url_national_rules,,,*Waiting for mapping from F21* /PROCEDURE/MAIN_FEATURES_AWARD,award_main_features,IV.1.11,,Map to `tender.awardCriteriaDetails` -/PROCEDURE/NOTICE_NUMBER_OJ,number_oj,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/release_relatedNotice,Discard. The *previous publication concerning this procedure* is the OCDS release with the same `ocid` as this release and with an earlier `date` that is nearest that of this release. +/PROCEDURE/NOTICE_NUMBER_OJ,number_oj,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/release_relatedNotice,Discard. The *previous publication concerning this procedure* is the OCDS release with the same `ocid` as this release and with the nearest earlier `date` to this release. /PROCEDURE/DATE_RECEIPT_TENDERS,date,,,Map to the date component of `tender.tenderPeriod.endDate` /PROCEDURE/TIME_RECEIPT_TENDERS,time,,,Map to the time component of `tender.tenderPeriod.endDate` /PROCEDURE/LANGUAGES,languages_allowed,IV.2.4,,"" @@ -158,7 +158,7 @@ xpath,label-key,index,comment,guidance /AWARD_CONTRACT/AWARDED_CONTRACT/INFO_ADD_SUBCONTRACTING,subcontr_descr_short,,,Map to the award's `.subcontracting.details` (PROPOSAL #37) /COMPLEMENTARY_INFO,info_complement,VI,,"" /COMPLEMENTARY_INFO/EORDERING,eordering_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows,Set `tender.contractTerms.hasElectronicOrdering` to `true` -/COMPLEMENTARY_INFO/EINVOICING,einvoicing_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows https://github.com/eForms/eForms/issues/88,Set `tender.contractTerms.electronicInvoicing` to 'allowed' +/COMPLEMENTARY_INFO/EINVOICING,einvoicing_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows https://github.com/eForms/eForms/issues/88,Set `tender.contractTerms.electronicInvoicingPolicy` to 'allowed' /COMPLEMENTARY_INFO/EPAYMENT,epayment_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows https://github.com/eForms/eForms/issues/88,Set `tender.contractTerms.hasElectronicPayment` to `true` /COMPLEMENTARY_INFO/INFO_ADD,info_additional,VI.3,,Map to `description` /COMPLEMENTARY_INFO/ADDRESS_REVIEW_BODY,appeals_body,VI.4.1,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ReviewProcedure,"[Add a party](../operations#add-a-party), and add 'reviewBody' to its `.roles`" @@ -175,7 +175,7 @@ xpath,label-key,index,comment,guidance /COMPLEMENTARY_INFO/REVIEW_PROCEDURE,appeals_deadline,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ReviewProcedure,Map to `tender.reviewDetails` (PROPOSAL #6) /COMPLEMENTARY_INFO/ADDRESS_REVIEW_INFO,appeals_info,VI.4.4,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ReviewProcedure,"[Add a party](../operations#add-a-party), and add 'reviewContactPoint' to its `.roles` (PROPOSAL #25)" /COMPLEMENTARY_INFO/DATE_DISPATCH_NOTICE,date_dispatch,VI.5,,Map to `date` -/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE,d_just_for_wo_pub_201425,D2.1,,"For each of the following, add a `Classification` object to the `tender.procurementMethodRationaleCodes` array. Set the classification's `.scheme` to `TED_PT_AWARD_CONTRACT_WITHOUT_CALL`, and set its `.id` and `.name` as follows (PROPOSAL #30)" +/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE,d_just_for_wo_pub_201425,D2.1,,"For each of the following, add a `Classification` object to the `tender.procurementMethodRationaleCodes` array. Set the classification's `.scheme` to 'TED_PT_AWARD_CONTRACT_WITHOUT_CALL', and set its `.id` and `.name` as follows (PROPOSAL #30)" /PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_NO_TENDERS_REQUESTS,d_no_tenders_in_response_call,,,Set `.id` to 'D_NO_TENDERS_REQUESTS' and `.name` to 'No tenders or no suitable tenders/requests to participate in response to a procedure with prior call for competition' /PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_PURE_RESEARCH,d_pure_research,,,"Set `.id` to 'D_PURE_RESEARCH' and `.name` to 'The contract involved is purely for the purpose of research, experiment, study or development under the conditions stated in the directive'" /PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_TECHNICAL,d_technical,,,"Set `.id` to 'D_TECHNICAL' and `.name` to 'The works, supplies or services can be provided only by a particular economic operator due to absence of competition for technical reasons'" diff --git a/output/mapping/F23_2014.csv b/output/mapping/F23_2014.csv index e08ffff0..cc364a71 100644 --- a/output/mapping/F23_2014.csv +++ b/output/mapping/F23_2014.csv @@ -32,7 +32,7 @@ xpath,label-key,index,comment,guidance /CONTRACTING_BODY/CA_TYPE_OTHER,other_type,,,Map to `.name` /CONTRACTING_BODY/CA_ACTIVITY,mainactivity,I.5,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to ['COFOG'](https://unstats.un.org/unsd/publications/catalogue?selectID=145), and set its `.id` and `.name` as follows: (PROPOSAL #10)" /CONTRACTING_BODY/CA_ACTIVITY_OTHER,other_activity,,,Map to `.name` -/CONTRACTING_BODY/CE_ACTIVITY,mainactivity,I.6,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to 'TED_CE_ACTIVITY', and set its `.id` as follows: (PROPOSAL #10)\n\n(The codes are drawn from [Directive 2014/25/EU](https://eur-lex.europa.eu/legal-content/en/TXT/?uri=CELEX%3A32014L0025#L_2014094EN.01033901))" +/CONTRACTING_BODY/CE_ACTIVITY,mainactivity,I.6,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to 'TED_CE_ACTIVITY', and set its `.id` and/or `.name` as follows: (PROPOSAL #10)\n\n(The codes are drawn from [Directive 2014/25/EU](https://eur-lex.europa.eu/legal-content/en/TXT/?uri=CELEX%3A32014L0025#L_2014094EN.01033901))" /CONTRACTING_BODY/CE_ACTIVITY_OTHER,other_activity,,,Map to `.name` /OBJECT_CONTRACT,object,II,,"" /OBJECT_CONTRACT/TITLE,title_contract,II.1.1,,Map to `tender.title` @@ -75,19 +75,19 @@ xpath,label-key,index,comment,guidance /OBJECT_CONTRACT/OBJECT_DESCR/EU_PROGR_RELATED,_yes,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/budget_isEUFunded https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/budget_EUFunded,"Get the `Organization` object for the European Union; if none exists yet, [add a party](../operations#add-a-party), and set its `.name` to 'European Union'. Then, add 'funder' to its `.roles`.\n\nGet the `Finance` object for this project; if none exists yet, add a `Finance` object to the `planning.budget.finance` array, map to its `.description`, set its `.id`, set its `.financingParty.name` to 'European Union', and set its `.financingParty.id` to the party's `.id`. Then, add the lot's `.id` to its `.relatedLots`. (PROPOSAL #20)\n\nIn [future forms](https://github.com/eForms/eForms/issues/181#issuecomment-439861320), this field will be de-emphasized." /OBJECT_CONTRACT/OBJECT_DESCR/NO_EU_PROGR_RELATED,_no,,,"Discard. If there's no party with the role 'funder' and the name 'European Union', then the procurement isn't related to a project and/or programme financed by European Union funds." /OBJECT_CONTRACT/OBJECT_DESCR/INFO_ADD,info_additional,II.2.14,,"Append to the lot's `.description`, and append to the item's `.description`\n\nThis results in a loss of structure. (WARNING #28)" -/LEFTI,info_legal,III,,"The standard forms express exclusion grounds and selection criteria in this section as unstructured text. In the [introductory note](https://github.com/eForms/eForms/raw/master/20180604_eForms_consultation_introduction.docx) to its [eForms consultation](https://github.com/eForms/eForms), the European Commission proposes to create an extension to eForms to implement the [European Single Procurement Document (ESPD)](http://ec.europa.eu/growth/single-market/public-procurement/e-procurement/espd/), which expresses this information as structured data, following the model of the [Core Criterion and Core Evidence Vocabulary](https://joinup.ec.europa.eu/solution/core-criterion-and-core-evidence-vocabulary). With respect to OCDS, work on this section is postponed until either the extension to eForms is available or until the [ESPD Exchange Data Model](https://github.com/ESPD/ESPD-EDM) is stable." -/LEFTI/RULES_CRITERIA,descr_brief_rules,,,"" -/LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop_concess,,,"" -/LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program_concess,,,Set `tender.contractTerms.reservedExecution` to `true` -/LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,"" -/LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,"" -/LEFTI/PERFORMANCE_CONDITIONS,concession_performance_conditions,III.2.2,,Map to `tender.contractTerms.termsPerformance` -/LEFTI/PERFORMANCE_STAFF_QUALIFICATION,staff_responsible_indicate_concess,,,"" +/LEFTI,info_legal,III,,"The standard forms express exclusion grounds and selection criteria in this section as unstructured text. In the introductory note to its [eForms consultation](https://github.com/eForms/eForms), the European Commission had proposed to create an extension to eForms to implement the [European Single Procurement Document (ESPD)](http://ec.europa.eu/growth/single-market/public-procurement/e-procurement/espd/) [Exchange Data Model](https://github.com/ESPD/ESPD-EDM), which expresses this information as structured data, following the model of the [Core Criterion and Core Evidence Vocabulary](https://joinup.ec.europa.eu/solution/core-criterion-and-core-evidence-vocabulary)." +/LEFTI/RULES_CRITERIA,descr_brief_rules,,,Map to `tender.otherRequirements.reductionCriteria` +/LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop_concess,,,Set `tender.otherRequirements.reservedParticipation` to 'shelteredWorkshop' +/LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program_concess,,,"Set `tender.contractTerms.hasReservedExecution` to `true`, and set `tender.contractTerms.reservedExecution` to 'Sheltered employment programmes'" +/LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,Set `tender.contractTerms.hasReservedExecution` to `true` +/LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,Map to `tender.contractTerms.reservedExecution` +/LEFTI/PERFORMANCE_CONDITIONS,concession_performance_conditions,III.2.2,,Map to `tender.contractTerms.performanceTerms` +/LEFTI/PERFORMANCE_STAFF_QUALIFICATION,staff_responsible_indicate_concess,,,Set `tender.otherRequirements.requiresStaffNamesQualifications` to `true` /PROCEDURE,procedure,IV,,"" /PROCEDURE/PT_AWARD_CONTRACT_WITH_PRIOR_PUBLICATION,proctype_with_concess_notice,,,Set `tender.procurementMethodDetails` to 'Award procedure with prior publication of a call for competition'. (PROPOSAL #46) /PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_PUBLICATION,award_wo_prior_pub_d4,,,"Set `tender.procurementMethod` to 'limited', and set `tender.procurementMethodDetails` to 'Award procedure without prior publication of a call for competition'.\n\nSee [Annex D4](#annex-d4-concession)" /PROCEDURE/MAIN_FEATURES_AWARD,award_main_features,IV.1.11,,Map to `tender.awardCriteriaDetails` -/PROCEDURE/NOTICE_NUMBER_OJ,number_oj,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/release_relatedNotice,Discard. The *previous publication concerning this procedure* is the OCDS release with the same `ocid` as this release and with an earlier `date` that is nearest that of this release. +/PROCEDURE/NOTICE_NUMBER_OJ,number_oj,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/release_relatedNotice,Discard. The *previous publication concerning this procedure* is the OCDS release with the same `ocid` as this release and with the nearest earlier `date` to this release. /PROCEDURE/DATE_RECEIPT_TENDERS,date,,,Map to the date component of `tender.tenderPeriod.endDate` /PROCEDURE/TIME_RECEIPT_TENDERS,time,,,Map to the time component of `tender.tenderPeriod.endDate` /PROCEDURE/LANGUAGES,languages_allowed,IV.2.4,,"" @@ -129,13 +129,13 @@ xpath,label-key,index,comment,guidance /AWARD_CONTRACT/AWARDED_CONTRACT/VALUES/VAL_TOTAL,value_total_final_concess,,,Map to the contract's `.value.amount` /AWARD_CONTRACT/AWARDED_CONTRACT/VALUES/VAL_TOTAL/@CURRENCY,currency,,,/AWARD_CONTRACT/AWARDED_CONTRACT/VALUES/VAL_ESTIMATED_TOTAL/@CURRENCY /AWARD_CONTRACT/AWARDED_CONTRACT/VAL_REVENUE,concess_fees_prices,,, -/AWARD_CONTRACT/AWARDED_CONTRACT/VAL_REVENUE/@CURRENCY,,,,/AWARD_CONTRACT/AWARDED_CONTRACT/VALUES/VAL_ESTIMATED_TOTAL/@CURRENCY +/AWARD_CONTRACT/AWARDED_CONTRACT/VAL_REVENUE/@CURRENCY,,,, /AWARD_CONTRACT/AWARDED_CONTRACT/VAL_PRICE_PAYMENT,concess_payments,,, -/AWARD_CONTRACT/AWARDED_CONTRACT/VAL_PRICE_PAYMENT/@CURRENCY,,,,/AWARD_CONTRACT/AWARDED_CONTRACT/VALUES/VAL_ESTIMATED_TOTAL/@CURRENCY +/AWARD_CONTRACT/AWARDED_CONTRACT/VAL_PRICE_PAYMENT/@CURRENCY,,,, /AWARD_CONTRACT/AWARDED_CONTRACT/INFO_ADD_VALUE,concess_other_details,,, /COMPLEMENTARY_INFO,info_complement,VI,,"" /COMPLEMENTARY_INFO/EORDERING,eordering_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows,Set `tender.contractTerms.hasElectronicOrdering` to `true` -/COMPLEMENTARY_INFO/EINVOICING,einvoicing_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows https://github.com/eForms/eForms/issues/88,Set `tender.contractTerms.electronicInvoicing` to 'allowed' +/COMPLEMENTARY_INFO/EINVOICING,einvoicing_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows https://github.com/eForms/eForms/issues/88,Set `tender.contractTerms.electronicInvoicingPolicy` to 'allowed' /COMPLEMENTARY_INFO/EPAYMENT,epayment_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows https://github.com/eForms/eForms/issues/88,Set `tender.contractTerms.hasElectronicPayment` to `true` /COMPLEMENTARY_INFO/INFO_ADD,info_additional,VI.3,,Map to `description` /COMPLEMENTARY_INFO/ADDRESS_REVIEW_BODY,appeals_body,VI.4.1,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ReviewProcedure,"[Add a party](../operations#add-a-party), and add 'reviewBody' to its `.roles`" @@ -152,7 +152,7 @@ xpath,label-key,index,comment,guidance /COMPLEMENTARY_INFO/REVIEW_PROCEDURE,appeals_deadline,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ReviewProcedure,Map to `tender.reviewDetails` (PROPOSAL #6) /COMPLEMENTARY_INFO/ADDRESS_REVIEW_INFO,appeals_info,VI.4.4,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ReviewProcedure,"[Add a party](../operations#add-a-party), and add 'reviewContactPoint' to its `.roles` (PROPOSAL #25)" /COMPLEMENTARY_INFO/DATE_DISPATCH_NOTICE,date_dispatch,VI.5,,Map to `date` -/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_PUBLICATION/D_ACCORDANCE_ARTICLE,d_just_for_wo_pub_201423,D4.1,,"For each of the following, add a `Classification` object to the `tender.procurementMethodRationaleCodes` array. Set the classification's `.scheme` to `TED_PT_AWARD_CONTRACT_WITHOUT_CALL`, and set its `.id` and `.name` as follows (PROPOSAL #30)" +/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_PUBLICATION/D_ACCORDANCE_ARTICLE,d_just_for_wo_pub_201423,D4.1,,"For each of the following, add a `Classification` object to the `tender.procurementMethodRationaleCodes` array. Set the classification's `.scheme` to 'TED_PT_AWARD_CONTRACT_WITHOUT_CALL', and set its `.id` and `.name` as follows (PROPOSAL #30)" /PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_PUBLICATION/D_ACCORDANCE_ARTICLE/D_NO_TENDERS_REQUESTS,d_no_applications,,,"Set `.id` to 'D_NO_TENDERS_REQUESTS' and `.name` to 'No applications, no tenders or no suitable tenders/applications in response to a prior concession award procedure'" /PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_PUBLICATION/D_ACCORDANCE_ARTICLE/D_ARTISTIC,d_artistic_concess,,,Set `.id` to 'D_ARTISTIC' and `.name` to 'The services can be provided only by a particular economic operator due to concession aiming at the creation or acquisition of a unique work of art or artistic performance' /PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_PUBLICATION/D_ACCORDANCE_ARTICLE/D_TECHNICAL,d_technical,,,Set `.id` to 'D_ARTISTIC' and `.name` to 'The services can be provided only by a particular economic operator due to absence of competition for technical reasons' diff --git a/output/mapping/F24_2014.csv b/output/mapping/F24_2014.csv index bd2227b7..225cdffe 100644 --- a/output/mapping/F24_2014.csv +++ b/output/mapping/F24_2014.csv @@ -31,7 +31,7 @@ xpath,label-key,index,comment,guidance /CONTRACTING_BODY/CA_TYPE_OTHER,other_type,,,Map to `.name` /CONTRACTING_BODY/CA_ACTIVITY,mainactivity,I.5,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to ['COFOG'](https://unstats.un.org/unsd/publications/catalogue?selectID=145), and set its `.id` and `.name` as follows: (PROPOSAL #10)" /CONTRACTING_BODY/CA_ACTIVITY_OTHER,other_activity,,,Map to `.name` -/CONTRACTING_BODY/CE_ACTIVITY,mainactivity,I.6,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to 'TED_CE_ACTIVITY', and set its `.id` as follows: (PROPOSAL #10)\n\n(The codes are drawn from [Directive 2014/25/EU](https://eur-lex.europa.eu/legal-content/en/TXT/?uri=CELEX%3A32014L0025#L_2014094EN.01033901))" +/CONTRACTING_BODY/CE_ACTIVITY,mainactivity,I.6,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to 'TED_CE_ACTIVITY', and set its `.id` and/or `.name` as follows: (PROPOSAL #10)\n\n(The codes are drawn from [Directive 2014/25/EU](https://eur-lex.europa.eu/legal-content/en/TXT/?uri=CELEX%3A32014L0025#L_2014094EN.01033901))" /CONTRACTING_BODY/CE_ACTIVITY_OTHER,other_activity,,,Map to `.name` /OBJECT_CONTRACT,object,II,,"" /OBJECT_CONTRACT/TITLE,title_contract,II.1.1,,Map to `tender.title` @@ -71,20 +71,20 @@ xpath,label-key,index,comment,guidance /OBJECT_CONTRACT/OBJECT_DESCR/EU_PROGR_RELATED,_yes,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/budget_isEUFunded https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/budget_EUFunded,"Get the `Organization` object for the European Union; if none exists yet, [add a party](../operations#add-a-party), and set its `.name` to 'European Union'. Then, add 'funder' to its `.roles`.\n\nGet the `Finance` object for this project; if none exists yet, add a `Finance` object to the `planning.budget.finance` array, map to its `.description`, set its `.id`, set its `.financingParty.name` to 'European Union', and set its `.financingParty.id` to the party's `.id`. Then, add the lot's `.id` to its `.relatedLots`. (PROPOSAL #20)\n\nIn [future forms](https://github.com/eForms/eForms/issues/181#issuecomment-439861320), this field will be de-emphasized." /OBJECT_CONTRACT/OBJECT_DESCR/NO_EU_PROGR_RELATED,_no,,,"Discard. If there's no party with the role 'funder' and the name 'European Union', then the procurement isn't related to a project and/or programme financed by European Union funds." /OBJECT_CONTRACT/OBJECT_DESCR/INFO_ADD,info_additional,II.2.14,,"Append to the lot's `.description`, and append to the item's `.description`\n\nThis results in a loss of structure. (WARNING #28)" -/LEFTI,info_legal,III,,"The standard forms express exclusion grounds and selection criteria in this section as unstructured text. In the [introductory note](https://github.com/eForms/eForms/raw/master/20180604_eForms_consultation_introduction.docx) to its [eForms consultation](https://github.com/eForms/eForms), the European Commission proposes to create an extension to eForms to implement the [European Single Procurement Document (ESPD)](http://ec.europa.eu/growth/single-market/public-procurement/e-procurement/espd/), which expresses this information as structured data, following the model of the [Core Criterion and Core Evidence Vocabulary](https://joinup.ec.europa.eu/solution/core-criterion-and-core-evidence-vocabulary). With respect to OCDS, work on this section is postponed until either the extension to eForms is available or until the [ESPD Exchange Data Model](https://github.com/ESPD/ESPD-EDM) is stable." -/LEFTI/SUITABILITY,descr_brief_cond_indication,,,"" -/LEFTI/ECONOMIC_CRITERIA_DOC,criteria_selection_docs,,,"" -/LEFTI/ECONOMIC_FINANCIAL_INFO,descr_brief_indication,,,"" -/LEFTI/ECONOMIC_FINANCIAL_MIN_LEVEL,min_standards_required,,,"" -/LEFTI/TECHNICAL_CRITERIA_DOC,criteria_selection_docs,,,"" -/LEFTI/TECHNICAL_PROFESSIONAL_INFO,descr_brief_indication,,,"" -/LEFTI/TECHNICAL_PROFESSIONAL_MIN_LEVEL,min_standards_required,,,"" -/LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop_concess,,,"" -/LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program_concess,,,Set `tender.contractTerms.reservedExecution` to `true` -/LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,"" -/LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,"" -/LEFTI/PERFORMANCE_CONDITIONS,concession_performance_conditions,III.2.2,,Map to `tender.contractTerms.termsPerformance` -/LEFTI/PERFORMANCE_STAFF_QUALIFICATION,staff_responsible_indicate_concess,,,"" +/LEFTI,info_legal,III,,"The standard forms express exclusion grounds and selection criteria in this section as unstructured text. In the introductory note to its [eForms consultation](https://github.com/eForms/eForms), the European Commission had proposed to create an extension to eForms to implement the [European Single Procurement Document (ESPD)](http://ec.europa.eu/growth/single-market/public-procurement/e-procurement/espd/) [Exchange Data Model](https://github.com/ESPD/ESPD-EDM), which expresses this information as structured data, following the model of the [Core Criterion and Core Evidence Vocabulary](https://joinup.ec.europa.eu/solution/core-criterion-and-core-evidence-vocabulary)." +/LEFTI/SUITABILITY,descr_brief_cond_indication,,,"Add a `SelectionCriterion` object to the `tender.selectionCriteria.criteria` array, set its `.type` to 'suitability', and map to its `.description`." +/LEFTI/ECONOMIC_CRITERIA_DOC,criteria_selection_docs,,,"Add a `Document` object to the `tender.documents` array, set its `.documentType` to 'economicSelectionCriteria', and set its `.id`." +/LEFTI/ECONOMIC_FINANCIAL_INFO,descr_brief_indication,,,"Add a `SelectionCriterion` object to the `tender.selectionCriteria.criteria` array, set its `.type` to 'economic', and map to its `.description`." +/LEFTI/ECONOMIC_FINANCIAL_MIN_LEVEL,min_standards_required,,,"Get the `SelectionCriterion` object whose `.type` is 'economic', and map to its `.minimum`" +/LEFTI/TECHNICAL_CRITERIA_DOC,criteria_selection_docs,,,"Add a `Document` object to the `tender.documents` array, set its `.documentType` to 'technicalSelectionCriteria', and set its `.id`." +/LEFTI/TECHNICAL_PROFESSIONAL_INFO,descr_brief_indication,,,"Add a `SelectionCriterion` object to the `tender.selectionCriteria.criteria` array, set its `.type` to 'technical', and map to its `.description`." +/LEFTI/TECHNICAL_PROFESSIONAL_MIN_LEVEL,min_standards_required,,,"Get the `SelectionCriterion` object whose `.type` is 'technical', and map to its `.minimum`" +/LEFTI/RESTRICTED_SHELTERED_WORKSHOP,restricted_sheltered_workshop_concess,,,Set `tender.otherRequirements.reservedParticipation` to 'shelteredWorkshop' +/LEFTI/RESTRICTED_SHELTERED_PROGRAM,restricted_sheltered_program_concess,,,"Set `tender.contractTerms.hasReservedExecution` to `true`, and set `tender.contractTerms.reservedExecution` to 'Sheltered employment programmes'" +/LEFTI/PARTICULAR_PROFESSION,particular_profession_reserved,,,Set `tender.contractTerms.hasReservedExecution` to `true` +/LEFTI/REFERENCE_TO_LAW,ref_law_reg_prov,,,Map to `tender.contractTerms.reservedExecution` +/LEFTI/PERFORMANCE_CONDITIONS,concession_performance_conditions,III.2.2,,Map to `tender.contractTerms.performanceTerms` +/LEFTI/PERFORMANCE_STAFF_QUALIFICATION,staff_responsible_indicate_concess,,,Set `tender.otherRequirements.requiresStaffNamesQualifications` to `true` /PROCEDURE,procedure,IV,,"" /PROCEDURE/CONTRACT_COVERED_GPA,_yes,,,Add 'GPA' to `tender.coveredBy` /PROCEDURE/NO_CONTRACT_COVERED_GPA,_no,,,"Discard. If 'GPA' isn't in `tender.coveredBy`, then the procurement isn't covered by the GPA." @@ -97,7 +97,7 @@ xpath,label-key,index,comment,guidance /COMPLEMENTARY_INFO/ESTIMATED_TIMING,further_notices_timing,,,Map to `tender.recurrence.description` /COMPLEMENTARY_INFO/NO_RECURRENT_PROCUREMENT,_no,,,Set `tender.hasRecurrence` to `false` /COMPLEMENTARY_INFO/EORDERING,eordering_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows,Set `tender.contractTerms.hasElectronicOrdering` to `true` -/COMPLEMENTARY_INFO/EINVOICING,einvoicing_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows https://github.com/eForms/eForms/issues/88,Set `tender.contractTerms.electronicInvoicing` to 'allowed' +/COMPLEMENTARY_INFO/EINVOICING,einvoicing_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows https://github.com/eForms/eForms/issues/88,Set `tender.contractTerms.electronicInvoicingPolicy` to 'allowed' /COMPLEMENTARY_INFO/EPAYMENT,epayment_used,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ElectronicWorkflows https://github.com/eForms/eForms/issues/88,Set `tender.contractTerms.hasElectronicPayment` to `true` /COMPLEMENTARY_INFO/INFO_ADD,info_additional,VI.3,,Map to `description` /COMPLEMENTARY_INFO/ADDRESS_REVIEW_BODY,appeals_body,VI.4.1,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ReviewProcedure,"[Add a party](../operations#add-a-party), and add 'reviewBody' to its `.roles`" diff --git a/output/mapping/F25_2014.csv b/output/mapping/F25_2014.csv index abce1575..5c7812fa 100644 --- a/output/mapping/F25_2014.csv +++ b/output/mapping/F25_2014.csv @@ -22,7 +22,7 @@ xpath,label-key,index,comment,guidance /CONTRACTING_BODY/CA_TYPE_OTHER,other_type,,,Map to `.name` /CONTRACTING_BODY/CA_ACTIVITY,mainactivity,I.5,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to ['COFOG'](https://unstats.un.org/unsd/publications/catalogue?selectID=145), and set its `.id` and `.name` as follows: (PROPOSAL #10)" /CONTRACTING_BODY/CA_ACTIVITY_OTHER,other_activity,,,Map to `.name` -/CONTRACTING_BODY/CE_ACTIVITY,mainactivity,I.6,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to 'TED_CE_ACTIVITY', and set its `.id` as follows: (PROPOSAL #10)\n\n(The codes are drawn from [Directive 2014/25/EU](https://eur-lex.europa.eu/legal-content/en/TXT/?uri=CELEX%3A32014L0025#L_2014094EN.01033901))" +/CONTRACTING_BODY/CE_ACTIVITY,mainactivity,I.6,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/parties_details_COFOG,"Get the `Organization` object for the buyer, and add a `Classification` object to its `.details.classifications` array. Set the classification's `.scheme` to 'TED_CE_ACTIVITY', and set its `.id` and/or `.name` as follows: (PROPOSAL #10)\n\n(The codes are drawn from [Directive 2014/25/EU](https://eur-lex.europa.eu/legal-content/en/TXT/?uri=CELEX%3A32014L0025#L_2014094EN.01033901))" /CONTRACTING_BODY/CE_ACTIVITY_OTHER,other_activity,,,Map to `.name` /OBJECT_CONTRACT,object,II,,"" /OBJECT_CONTRACT/TITLE,title_contract,II.1.1,,Map to `tender.title` @@ -67,7 +67,7 @@ xpath,label-key,index,comment,guidance /PROCEDURE/CONTRACT_COVERED_GPA,_yes,,,Add 'GPA' to `tender.coveredBy` /PROCEDURE/NO_CONTRACT_COVERED_GPA,_no,,,"Discard. If 'GPA' isn't in `tender.coveredBy`, then the procurement isn't covered by the GPA." /PROCEDURE/MAIN_FEATURES_AWARD,award_main_features,IV.1.11,,Map to `tender.awardCriteriaDetails` -/PROCEDURE/NOTICE_NUMBER_OJ,number_oj,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/release_relatedNotice,Discard. The *previous publication concerning this procedure* is the OCDS release with the same `ocid` as this release and with an earlier `date` that is nearest that of this release. +/PROCEDURE/NOTICE_NUMBER_OJ,number_oj,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/release_relatedNotice,Discard. The *previous publication concerning this procedure* is the OCDS release with the same `ocid` as this release and with the nearest earlier `date` to this release. /AWARD_CONTRACT,award_of_concession,V,,Add an `Award` object to the `awards` array /AWARD_CONTRACT/@ITEM,,,,Discard /AWARD_CONTRACT/LOT_NO,lot_number,,,"If not set, let *Lot No* be '1'. Add to the award's `.relatedLots`." @@ -107,9 +107,9 @@ xpath,label-key,index,comment,guidance /AWARD_CONTRACT/AWARDED_CONTRACT/VALUES/VAL_TOTAL,value_total_final_concess,,,Map to the contract's `.value.amount` /AWARD_CONTRACT/AWARDED_CONTRACT/VALUES/VAL_TOTAL/@CURRENCY,currency,,,/AWARD_CONTRACT/AWARDED_CONTRACT/VALUES/VAL_ESTIMATED_TOTAL/@CURRENCY /AWARD_CONTRACT/AWARDED_CONTRACT/VAL_REVENUE,concess_fees_prices,,,*Waiting for mapping from F23* -/AWARD_CONTRACT/AWARDED_CONTRACT/VAL_REVENUE/@CURRENCY,,,,/AWARD_CONTRACT/AWARDED_CONTRACT/VALUES/VAL_ESTIMATED_TOTAL/@CURRENCY +/AWARD_CONTRACT/AWARDED_CONTRACT/VAL_REVENUE/@CURRENCY,,,,*Waiting for mapping from F23* /AWARD_CONTRACT/AWARDED_CONTRACT/VAL_PRICE_PAYMENT,concess_payments,,,*Waiting for mapping from F23* -/AWARD_CONTRACT/AWARDED_CONTRACT/VAL_PRICE_PAYMENT/@CURRENCY,,,,/AWARD_CONTRACT/AWARDED_CONTRACT/VALUES/VAL_ESTIMATED_TOTAL/@CURRENCY +/AWARD_CONTRACT/AWARDED_CONTRACT/VAL_PRICE_PAYMENT/@CURRENCY,,,,*Waiting for mapping from F23* /AWARD_CONTRACT/AWARDED_CONTRACT/INFO_ADD_VALUE,concess_other_details,,,*Waiting for mapping from F23* /COMPLEMENTARY_INFO,info_complement,VI,,"" /COMPLEMENTARY_INFO/INFO_ADD,info_additional,VI.3,,Map to `description` @@ -127,7 +127,7 @@ xpath,label-key,index,comment,guidance /COMPLEMENTARY_INFO/REVIEW_PROCEDURE,appeals_deadline,,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ReviewProcedure,Map to `tender.reviewDetails` (PROPOSAL #6) /COMPLEMENTARY_INFO/ADDRESS_REVIEW_INFO,appeals_info,VI.4.4,https://github.com/open-contracting-archive/trade/tree/master/draft_extensions/tender_ReviewProcedure,"[Add a party](../operations#add-a-party), and add 'reviewContactPoint' to its `.roles` (PROPOSAL #25)" /COMPLEMENTARY_INFO/DATE_DISPATCH_NOTICE,date_dispatch,VI.5,,Map to `date` -/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_PUBLICATION/D_ACCORDANCE_ARTICLE,d_just_for_wo_pub_201423,D4.1,,"For each of the following, add a `Classification` object to the `tender.procurementMethodRationaleCodes` array. Set the classification's `.scheme` to `TED_PT_AWARD_CONTRACT_WITHOUT_CALL`, and set its `.id` and `.name` as follows (PROPOSAL #30)" +/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_PUBLICATION/D_ACCORDANCE_ARTICLE,d_just_for_wo_pub_201423,D4.1,,"For each of the following, add a `Classification` object to the `tender.procurementMethodRationaleCodes` array. Set the classification's `.scheme` to 'TED_PT_AWARD_CONTRACT_WITHOUT_CALL', and set its `.id` and `.name` as follows (PROPOSAL #30)" /PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_PUBLICATION/D_ACCORDANCE_ARTICLE/D_NO_TENDERS_REQUESTS,d_no_applications,,,"Set `.id` to 'D_NO_TENDERS_REQUESTS' and `.name` to 'No applications, no tenders or no suitable tenders/applications in response to a prior concession award procedure'" /PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_PUBLICATION/D_ACCORDANCE_ARTICLE/D_ARTISTIC,d_artistic_concess,,,Set `.id` to 'D_ARTISTIC' and `.name` to 'The services can be provided only by a particular economic operator due to concession aiming at the creation or acquisition of a unique work of art or artistic performance' /PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_PUBLICATION/D_ACCORDANCE_ARTICLE/D_TECHNICAL,d_technical,,,Set `.id` to 'D_ARTISTIC' and `.name` to 'The services can be provided only by a particular economic operator due to absence of competition for technical reasons' diff --git a/output/mapping/MOVE.csv b/output/mapping/MOVE.csv index e8f84878..da267f26 100644 --- a/output/mapping/MOVE.csv +++ b/output/mapping/MOVE.csv @@ -53,14 +53,14 @@ xpath,label-key,index,comment,guidance /OBJECT_CONTRACT/OBJECT_DESCR/MAIN_SITE,mainsiteplace_works_delivery,,,Map to the item's `.deliveryLocation.description` /OBJECT_CONTRACT/OBJECT_DESCR/SHORT_DESCR,descr_procurement,II.2.4,,"Map to the lot's `.description`, and map to the item's `.description`" /OBJECT_CONTRACT/OBJECT_DESCR/DATE_START,starting,,,Map to the lot's `.contractPeriod.startDate` (PROPOSAL #19) -/OBJECT_CONTRACT/OBJECT_DESCR/DURATION,,II.2.7,,"" +/OBJECT_CONTRACT/OBJECT_DESCR/DURATION,duration_contract_framework_dps,II.2.7,,"" /OBJECT_CONTRACT/OBJECT_DESCR/ESSENTIAL_ASSETS,assets_extended_contract,,, /OBJECT_CONTRACT/OBJECT_DESCR/ESSENTIAL_ASSETS/EXTENDED_CONTRACT_DURATION,_yes,,, /OBJECT_CONTRACT/OBJECT_DESCR/ESSENTIAL_ASSETS/LIST,assets_list,,, /OBJECT_CONTRACT/OBJECT_DESCR/ESSENTIAL_ASSETS/SIGNIFICANCE,assets_significance,,, /OBJECT_CONTRACT/OBJECT_DESCR/ESSENTIAL_ASSETS/PREDOMINANCE,assets_predominant,,, /OBJECT_CONTRACT/OBJECT_DESCR/ESSENTIAL_ASSETS/NO_EXTENDED_CONTRACT_DURATION,_no,,, -/LEFTI,info_legal,III,,"The standard forms express exclusion grounds and selection criteria in this section as unstructured text. In the [introductory note](https://github.com/eForms/eForms/raw/master/20180604_eForms_consultation_introduction.docx) to its [eForms consultation](https://github.com/eForms/eForms), the European Commission proposes to create an extension to eForms to implement the [European Single Procurement Document (ESPD)](http://ec.europa.eu/growth/single-market/public-procurement/e-procurement/espd/), which expresses this information as structured data, following the model of the [Core Criterion and Core Evidence Vocabulary](https://joinup.ec.europa.eu/solution/core-criterion-and-core-evidence-vocabulary). With respect to OCDS, work on this section is postponed until either the extension to eForms is available or until the [ESPD Exchange Data Model](https://github.com/ESPD/ESPD-EDM) is stable." +/LEFTI,info_legal,III,,"The standard forms express exclusion grounds and selection criteria in this section as unstructured text. In the introductory note to its [eForms consultation](https://github.com/eForms/eForms), the European Commission had proposed to create an extension to eForms to implement the [European Single Procurement Document (ESPD)](http://ec.europa.eu/growth/single-market/public-procurement/e-procurement/espd/) [Exchange Data Model](https://github.com/ESPD/ESPD-EDM), which expresses this information as structured data, following the model of the [Core Criterion and Core Evidence Vocabulary](https://joinup.ec.europa.eu/solution/core-criterion-and-core-evidence-vocabulary)." /LEFTI/COST_PARAMETERS,parameters_cost,,, /LEFTI/EXCLUSIVE_RIGHTS_GRANTED,_yes,,, /LEFTI/NO_EXCLUSIVE_RIGHTS_GRANTED,_no,,,