diff --git a/dags/old_worker_single_notice_process_orchestrator.py b/dags/old_worker_single_notice_process_orchestrator.py
index 9329cab20..7cc120aba 100644
--- a/dags/old_worker_single_notice_process_orchestrator.py
+++ b/dags/old_worker_single_notice_process_orchestrator.py
@@ -209,6 +209,9 @@ def _validate_transformed_rdf_manifestation(**context_args):
mongodb_client = MongoClient(config.MONGO_DB_AUTH_URL)
notice_repository = NoticeRepository(mongodb_client=mongodb_client)
mapping_suite_repository = MappingSuiteRepositoryMongoDB(mongodb_client=mongodb_client)
+ validate_xpath_coverage_notice_by_id(notice_id=notice_id, mapping_suite_identifier=mapping_suite_id,
+ mapping_suite_repository=mapping_suite_repository,
+ mongodb_client=mongodb_client)
validate_notice_by_id_with_sparql_suite(notice_id=notice_id, mapping_suite_identifier=mapping_suite_id,
notice_repository=notice_repository,
mapping_suite_repository=mapping_suite_repository)
@@ -216,9 +219,7 @@ def _validate_transformed_rdf_manifestation(**context_args):
notice_repository=notice_repository,
mapping_suite_repository=mapping_suite_repository
)
- validate_xpath_coverage_notice_by_id(notice_id=notice_id, mapping_suite_identifier=mapping_suite_id,
- mapping_suite_repository=mapping_suite_repository,
- mongodb_client=mongodb_client)
+
push_dag_downstream(NOTICE_ID, notice_id)
push_dag_downstream(MAPPING_SUITE_ID, mapping_suite_id)
diff --git a/dags/worker_single_notice_process_orchestrator.py b/dags/worker_single_notice_process_orchestrator.py
index 87956f701..334391fd4 100644
--- a/dags/worker_single_notice_process_orchestrator.py
+++ b/dags/worker_single_notice_process_orchestrator.py
@@ -200,9 +200,9 @@ def _validate_transformed_rdf_manifestation(**context_args):
mapping_suite = pull_dag_upstream(MAPPING_SUITE_OBJECT)
mongodb_client = MongoClient(config.MONGO_DB_AUTH_URL)
+ validate_xpath_coverage_notice(notice=notice, mapping_suite=mapping_suite, mongodb_client=mongodb_client)
validate_notice_with_sparql_suite(notice=notice, mapping_suite_package=mapping_suite)
validate_notice_with_shacl_suite(notice=notice, mapping_suite_package=mapping_suite)
- validate_xpath_coverage_notice(notice=notice, mapping_suite=mapping_suite, mongodb_client=mongodb_client)
push_dag_downstream(NOTICE_OBJECT, notice)
context = get_current_context()
handle_event_message_metadata_dag_context(event_message, context)
diff --git a/requirements.txt b/requirements.txt
index cc5cc7749..fe8cf54e2 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -9,7 +9,6 @@ apache-airflow==2.2.5
hvac==0.11.2
SPARQLWrapper==1.8.5
pandas==1.3.5
-pymessagebus~=1.2
click~=8.1.0
openpyxl==3.0.9
colorama~=0.4
diff --git a/ted_sws/__init__.py b/ted_sws/__init__.py
index 0f61c946d..04f61823c 100644
--- a/ted_sws/__init__.py
+++ b/ted_sws/__init__.py
@@ -144,6 +144,11 @@ def ID_MANAGER_API_HOST(self) -> str:
v: str = EnvConfigResolver().config_resolve()
return v if v else "localhost"
+ @property
+ def ID_MANAGER_OLD_API_HOST(self) -> str:
+ v: str = EnvConfigResolver().config_resolve()
+ return v if v else "localhost"
+
@property
def ID_MANAGER_API_PORT(self) -> int:
v: str = EnvConfigResolver().config_resolve()
diff --git a/ted_sws/core/adapters/cmd_runner.py b/ted_sws/core/adapters/cmd_runner.py
index 48bcc63ca..f82fede93 100644
--- a/ted_sws/core/adapters/cmd_runner.py
+++ b/ted_sws/core/adapters/cmd_runner.py
@@ -8,8 +8,7 @@
EventWriterToMongoDBHandler
from ted_sws.event_manager.adapters.event_handler_config import CLILoggerConfig
from ted_sws.event_manager.adapters.event_logger import EventLogger
-from ted_sws.event_manager.adapters.log import SeverityLevelType
-from ted_sws.event_manager.adapters.logger import LOG_ERROR_TEXT, LOG_SUCCESS_TEXT
+from ted_sws.event_manager.adapters.log import SeverityLevelType, LOG_ERROR_TEXT, LOG_SUCCESS_TEXT
from ted_sws.event_manager.model.event_message import EventMessage, EventMessageLogSettings
from ted_sws.event_manager.services.logger_from_context import get_env_logger
diff --git a/ted_sws/core/model/manifestation.py b/ted_sws/core/model/manifestation.py
index 7d2aee39d..984555196 100644
--- a/ted_sws/core/model/manifestation.py
+++ b/ted_sws/core/model/manifestation.py
@@ -127,6 +127,7 @@ class SPARQLQuery(PropertyBaseModel):
"""
title: Optional[str]
description: Optional[str]
+ xpath: Optional[List[str]] = []
query: str
@@ -136,6 +137,9 @@ class SPARQLQueryResult(PropertyBaseModel):
"""
query: SPARQLQuery
result: Optional[str]
+ query_result: Optional[str]
+ fields_covered: Optional[bool] = True
+ missing_fields: Optional[List[str]] = []
error: Optional[str]
identifier: Optional[str]
diff --git a/ted_sws/data_manager/entrypoints/cli/cmd_generate_mapping_resources.py b/ted_sws/data_manager/entrypoints/cli/cmd_generate_mapping_resources.py
index 9b27accc3..c795db5dc 100644
--- a/ted_sws/data_manager/entrypoints/cli/cmd_generate_mapping_resources.py
+++ b/ted_sws/data_manager/entrypoints/cli/cmd_generate_mapping_resources.py
@@ -7,7 +7,7 @@
from ted_sws.core.adapters.cmd_runner import CmdRunner as BaseCmdRunner, DEFAULT_MAPPINGS_PATH
from ted_sws.data_manager.adapters.mapping_suite_repository import TRANSFORM_PACKAGE_NAME, RESOURCES_PACKAGE_NAME
from ted_sws.data_manager.adapters.sparql_endpoint import SPARQLTripleStoreEndpoint, TripleStoreEndpointABC
-from ted_sws.event_manager.adapters.logger import LOG_INFO_TEXT
+from ted_sws.event_manager.adapters.log import LOG_INFO_TEXT
from ted_sws.resources import QUERIES_PATH, MAPPING_FILES_PATH
CELLAR_SPARQL_ENDPOINT_URL = "http://publications.europa.eu/webapi/rdf/sparql"
diff --git a/ted_sws/event_manager/adapters/log/__init__.py b/ted_sws/event_manager/adapters/log/__init__.py
index 20c4a7371..f8d19d36d 100644
--- a/ted_sws/event_manager/adapters/log/__init__.py
+++ b/ted_sws/event_manager/adapters/log/__init__.py
@@ -4,6 +4,14 @@
from ted_sws import RUN_ENV_NAME, RUN_TEST_ENV_VAL
+from colorama import Fore
+
+LOG_ERROR_TEXT = Fore.RED + "{}" + Fore.RESET
+LOG_SUCCESS_TEXT = Fore.GREEN + "{}" + Fore.RESET
+LOG_INFO_TEXT = Fore.CYAN + "{}" + Fore.RESET
+LOG_WARN_TEXT = Fore.YELLOW + "{}" + Fore.RESET
+
+
EVENT_LOGGER_CONTEXT_KEY = '__event_logger__'
@@ -21,10 +29,5 @@ class ConfigHandlerType(Enum):
MongoDBHandler = "MongoDBHandler"
-class LoggedBy(Enum):
- DECORATOR = "decorator"
- WRITER = "writer"
-
-
def is_env_logging_enabled() -> bool:
return os.environ[RUN_ENV_NAME] not in [RUN_TEST_ENV_VAL]
diff --git a/ted_sws/event_manager/adapters/log/log_decorator.py b/ted_sws/event_manager/adapters/log/log_decorator.py
deleted file mode 100644
index c81e9748d..000000000
--- a/ted_sws/event_manager/adapters/log/log_decorator.py
+++ /dev/null
@@ -1,85 +0,0 @@
-import inspect
-from datetime import datetime, timezone
-from typing import Any
-
-from decorator import decorate
-from pymongo import MongoClient
-
-from ted_sws.event_manager.adapters.log import LoggedBy
-from ted_sws.event_manager.adapters.log import is_env_logging_enabled
-from ted_sws.event_manager.adapters.log.log_writer import LogWriter
-from ted_sws.event_manager.adapters.log_repository import LogRepository
-from ted_sws.event_manager.model.message import DBProcessLog as Log, DBProcessLogRequest as LogRequest, \
- DBProcessLogResponse as LogResponse
-
-
-# Log decorator
-
-
-def log(mongodb_client: MongoClient = None, title: str = '', message: str = ''):
- def wrapper(fn):
- def get_path() -> str:
- return fn.__name__
-
- def get_request(args: Any, kwargs: Any) -> LogRequest:
- log_request = LogRequest()
- signature = inspect.signature(fn)
- idx = 0
- if args:
- for param in signature.parameters.values():
- if param.kind == inspect.Parameter.VAR_POSITIONAL:
- break
- else:
- log_request.POSITIONAL_OR_KEYWORD[param.name] = LogWriter.sanitize_request_param(args[idx])
- idx += 1
-
- while idx < len(args):
- log_request.VAR_POSITIONAL[str(idx)] = LogWriter.sanitize_request_param(args[idx])
- idx += 1
-
- log_request.VAR_KEYWORD = LogWriter.sanitize_request_params({**kwargs})
-
- return log_request
-
- def get_response(result: Any) -> LogResponse:
- return LogWriter.get_response(result)
-
- def log_save_before(request: LogRequest, started_at) -> (str, Log):
- log_repo = LogRepository(mongodb_client)
-
- log_entry = Log()
- log_entry.title = title
- log_entry.message = message
- log_entry.path = get_path()
- log_entry.name = fn.__name__
- log_entry.request = request
- log_entry.started_at = started_at
- log_entry.logged_by = LoggedBy.DECORATOR
-
- return log_repo.add(log_entry), log_entry
-
- def log_save_after(_id: str, log_entry: Log, started_at, ended_at, result) -> str:
- log_repo = LogRepository(mongodb_client)
-
- log_entry.duration = (ended_at - started_at).total_seconds()
- log_entry.ended_at = ended_at
- log_entry.response = get_response(result)
-
- return log_repo.update(_id, log_entry)
-
- def process(fn, *args, **kwargs):
- if not is_env_logging_enabled():
- return fn(*args, **kwargs)
-
- started_at = datetime.now(timezone.utc)
- log_request = get_request(args, kwargs)
- _id, log_entry = log_save_before(log_request, started_at)
- result = fn(*args, **kwargs)
- ended_at = datetime.now(timezone.utc)
- log_save_after(_id, log_entry, started_at, ended_at, result)
-
- return result
-
- return decorate(fn, process)
-
- return wrapper
diff --git a/ted_sws/event_manager/adapters/log/log_writer.py b/ted_sws/event_manager/adapters/log/log_writer.py
deleted file mode 100644
index 05cc24602..000000000
--- a/ted_sws/event_manager/adapters/log/log_writer.py
+++ /dev/null
@@ -1,82 +0,0 @@
-from datetime import datetime, timezone
-from typing import Any, Dict
-
-from pymongo import MongoClient
-
-from ted_sws.core.model import PropertyBaseModel
-from ted_sws.core.model.notice import Notice
-from ted_sws.event_manager.adapters.log import LoggedBy
-from ted_sws.event_manager.adapters.log_repository import LogRepository
-from ted_sws.event_manager.model.message import DBProcessLog as Log, DBProcessLogResponse as LogResponse, DICT_TYPE
-
-NOTICE_LARGE_FIELDS = ['xml_manifestation', 'rdf_manifestation', 'mets_manifestation', 'distilled_rdf_manifestation',
- 'preprocessed_xml_manifestation']
-
-
-class LogWriter:
- _instance = None
-
- def __new__(cls, mongodb_client: MongoClient = None):
- if cls._instance is None:
- cls.log_repo = LogRepository(mongodb_client)
- cls._instance = super(LogWriter, cls).__new__(cls)
-
- return cls._instance
-
- @classmethod
- def sanitize_notice_param(cls, notice: Any) -> Any:
- for large_field in NOTICE_LARGE_FIELDS:
- if large_field in notice:
- del notice[large_field]
-
- return notice
-
- @classmethod
- def sanitize_request_param(cls, param: Any) -> Any:
- if isinstance(param, PropertyBaseModel):
- s_param = param.dict()
-
- # remove large fields from Notice param
- if isinstance(param, Notice):
- s_param = cls.sanitize_notice_param(s_param)
- else:
- s_param = param if isinstance(param, bool) else str(param)
-
- return s_param
-
- @classmethod
- def sanitize_request_params(cls, params: Dict) -> DICT_TYPE:
- if not params:
- return None
-
- for key in params:
- param = params[key]
- params[key] = cls.sanitize_request_param(param)
-
- return params
-
- @classmethod
- def get_response(cls, result: Any) -> LogResponse:
- if isinstance(result, dict):
- s_result = cls.sanitize_request_params(result)
- else:
- s_result = cls.sanitize_request_param(result)
-
- log_response = LogResponse()
- log_response.RESULT = s_result
- return log_response
-
- def save(self, title: str = None, message: str = None, request: DICT_TYPE = None) -> str:
- started_at = datetime.now(timezone.utc)
- log_entry = Log()
- log_entry.title = title
- log_entry.message = message
- log_entry.path = __name__
- log_entry.name = __name__
- log_entry.request = self.sanitize_request_params(request)
- log_entry.started_at = started_at
- log_entry.ended_at = started_at
- log_entry.response = self.get_response(True)
- log_entry.logged_by = LoggedBy.WRITER
-
- return self.log_repo.add(log_entry)
diff --git a/ted_sws/event_manager/adapters/log_repository.py b/ted_sws/event_manager/adapters/log_repository.py
deleted file mode 100644
index 2b719c8d3..000000000
--- a/ted_sws/event_manager/adapters/log_repository.py
+++ /dev/null
@@ -1,73 +0,0 @@
-from typing import Union
-
-from bson import ObjectId
-from pymongo import MongoClient, ASCENDING, DESCENDING
-
-from ted_sws import config
-from ted_sws.event_manager.model.message import DBProcessLog as Log
-
-MONGODB_COLLECTION_ID = "_id"
-
-
-class LogRepository:
- """
- This repository is intended for storing Log objects.
- """
-
- collection = None
- _instance = None
-
- _collection_name = "logs"
- _database_name = config.MONGO_DB_LOGS_DATABASE_NAME or "logs_db"
-
- def __new__(cls, mongodb_client: MongoClient = None, database_name: str = _database_name):
- if cls._instance is None:
- if mongodb_client is None:
- mongodb_client = MongoClient(config.MONGO_DB_AUTH_URL)
- cls._database_name = database_name
- cls.mongodb_client = mongodb_client
- log_db = mongodb_client[cls._database_name]
-
- cls.collection = log_db[cls._collection_name]
- cls.collection.create_index([("year", DESCENDING)])
- cls.collection.create_index([("month", ASCENDING)])
- cls.collection.create_index([("day", ASCENDING)])
-
- cls._instance = super(LogRepository, cls).__new__(cls)
-
- return cls._instance
-
- def get_database_name(self):
- return self._database_name
-
- @staticmethod
- def create_dict_from_log(log: Log) -> dict:
- """
- """
-
- log_dict = log.dict()
-
- return log_dict
-
- @staticmethod
- def create_log_from_dict(log_dict: dict) -> Union[Log, None]:
- """
- """
-
- del log_dict[MONGODB_COLLECTION_ID]
- log = Log(**log_dict)
- return log
-
- def add(self, log: Log) -> str:
- """
- """
- log_dict = LogRepository.create_dict_from_log(log=log)
- result = self.collection.insert_one(log_dict)
- return result.inserted_id
-
- def update(self, _id: str, log: Log) -> str:
- """
- """
- log_dict = LogRepository.create_dict_from_log(log=log)
- self.collection.update_one({"_id": ObjectId(_id)}, {"$set": log_dict}, upsert=True)
- return _id
diff --git a/ted_sws/event_manager/adapters/logger.py b/ted_sws/event_manager/adapters/logger.py
deleted file mode 100644
index 8d81fa3c0..000000000
--- a/ted_sws/event_manager/adapters/logger.py
+++ /dev/null
@@ -1,71 +0,0 @@
-import abc
-import logging
-import sys
-from typing import List
-
-from colorama import Fore
-
-DEFAULT_LOGGER_LEVEL = logging.NOTSET
-DEFAULT_LOGGER_NAME = "ROOT"
-
-LOG_ERROR_TEXT = Fore.RED + "{}" + Fore.RESET
-LOG_SUCCESS_TEXT = Fore.GREEN + "{}" + Fore.RESET
-LOG_INFO_TEXT = Fore.CYAN + "{}" + Fore.RESET
-LOG_WARN_TEXT = Fore.YELLOW + "{}" + Fore.RESET
-
-LOG_ERROR_LEVEL = logging.ERROR
-LOG_INFO_LEVEL = logging.INFO
-LOG_WARN_LEVEL = logging.WARNING
-
-
-class LoggerABC(abc.ABC):
- """
- This abstract class provides methods definitions and infos for available loggers
- """
- pass
-
-
-class Logger(LoggerABC):
- """
- This class provides common features for available loggers
- """
-
- def __init__(self, name: str = DEFAULT_LOGGER_NAME, level: int = DEFAULT_LOGGER_LEVEL):
- self.level = level
- self.name = name
- self.logger = logging.getLogger(name)
- self.logger.setLevel(self.level)
- self.logger.propagate = False
- self.add_handlers()
-
- def get_logger(self) -> logging.Logger:
- return self.logger
-
- def init_handlers(self):
- self.logger.handlers.clear()
-
- def get_handlers(self) -> List:
- return self.logger.handlers
-
- def add_handlers(self):
- self.init_handlers()
-
- def has_handler(self, handler) -> bool:
- return any((type(handler) is type(h)) for h in self.get_handlers())
-
- def add_handler(self, handler):
- if not self.has_handler(handler):
- self.logger.addHandler(handler)
-
- def add_console_handler(self, level: int = DEFAULT_LOGGER_LEVEL, formatter: logging.Formatter = None):
- console = logging.StreamHandler(sys.stdout)
- console.setLevel(level)
- if formatter is not None:
- console.setFormatter(formatter)
- self.add_handler(console)
-
- def log(self, msg: str, level: int = None):
- self.logger.log(level if level is not None else self.level, msg)
-
-
-logger = Logger()
diff --git a/ted_sws/event_manager/model/message.py b/ted_sws/event_manager/model/message.py
deleted file mode 100644
index d4997b68f..000000000
--- a/ted_sws/event_manager/model/message.py
+++ /dev/null
@@ -1,52 +0,0 @@
-from datetime import datetime, timezone
-from typing import Optional, List, Union, Any, Dict
-
-from ted_sws.core.model import PropertyBaseModel
-from ted_sws.event_manager.adapters.log import LoggedBy
-from ted_sws.event_manager.adapters.logger import Logger, logger as root_logger
-
-MESSAGE_TYPE = Union[List[str], str]
-DICT_TYPE = Union[Dict[str, Any], None]
-
-EOL = "\n"
-
-
-class Message(PropertyBaseModel):
- title: Optional[str] = None
- message: Optional[MESSAGE_TYPE] = None
-
- class Config:
- arbitrary_types_allowed = True
- use_enum_values = True
-
-
-class Log(Message):
- name: str = __name__
- level: int = None
- logger: Logger = root_logger
-
-
-class DBProcessLogRequest(PropertyBaseModel):
- POSITIONAL_OR_KEYWORD: DICT_TYPE = {}
- VAR_POSITIONAL: DICT_TYPE = {}
- VAR_KEYWORD: DICT_TYPE = {}
-
-
-class DBProcessLogResponse(PropertyBaseModel):
- RESULT: Optional[str]
-
-
-class DBProcessLog(Message):
- created_at: datetime = datetime.now(timezone.utc)
- year: datetime = datetime.now(timezone.utc).year
- month: datetime = datetime.now(timezone.utc).month
- day: datetime = datetime.now(timezone.utc).day
- path: Optional[str] = None
- name: Optional[str] = None
- request: Optional[Union[DBProcessLogRequest, DICT_TYPE]] = None
- started_at: datetime = datetime.now(timezone.utc)
- duration: Optional[int] = None
- ended_at: Optional[datetime] = None
- response: Optional[DBProcessLogResponse] = None
- logs: Optional[str] = None
- logged_by: Optional[LoggedBy] = None
diff --git a/ted_sws/event_manager/model/message_bus.py b/ted_sws/event_manager/model/message_bus.py
deleted file mode 100644
index 0db1f8b61..000000000
--- a/ted_sws/event_manager/model/message_bus.py
+++ /dev/null
@@ -1,59 +0,0 @@
-import logging
-from typing import Callable, List, Dict
-
-from pymessagebus import MessageBus as PyMessageBus
-from pymessagebus.api import Middleware
-from pymessagebus.middleware.logger import get_logger_middleware, LoggingMiddlewareConfig
-
-from ted_sws.event_manager.adapters.logger import logger, Logger
-from ted_sws.event_manager.model import message, message_handlers
-
-"""
-Here is instantiated/initialized domain message_bus service
-"""
-
-
-class MessageBus(PyMessageBus):
- """
- This class provides additional features to MessageBus
- """
- HAS_LOGGING_MIDDLEWARE = True
- _logger: Logger = logger
-
- def set_domain_logger(self, _logger: Logger):
- self._logger = _logger
-
- def get_domain_logger(self) -> Logger:
- return self._logger
-
- def set_middlewares(self, _middlewares: List[Middleware] = None):
- self._middlewares_chain = self._get_middlewares_callables_chain(
- _middlewares, self._trigger_handlers_for_message_as_a_middleware
- )
-
- def add_handlers(self, handlers: Dict[type, List[Callable]]) -> None:
- for message_class in handlers:
- for message_handler in handlers[message_class]:
- super().add_handler(message_class, message_handler)
-
-
-message_bus = MessageBus()
-
-middlewares: List = []
-if MessageBus.HAS_LOGGING_MIDDLEWARE:
- logging_middleware_config = LoggingMiddlewareConfig(
- mgs_received_level=logging.INFO,
- mgs_succeeded_level=logging.INFO,
- mgs_failed_level=logging.CRITICAL
- )
- logging_middleware = get_logger_middleware(message_bus.get_domain_logger().get_logger(), logging_middleware_config)
- middlewares.append(logging_middleware)
-
-if len(middlewares) > 0:
- message_bus.set_middlewares(middlewares)
-
-message_bus.add_handlers({
- message.Log: [
- message_handlers.handler_log
- ]
-})
diff --git a/ted_sws/event_manager/model/message_handlers.py b/ted_sws/event_manager/model/message_handlers.py
deleted file mode 100644
index d614413ad..000000000
--- a/ted_sws/event_manager/model/message_handlers.py
+++ /dev/null
@@ -1,32 +0,0 @@
-from typing import List
-
-from ted_sws.event_manager.model import message
-
-"""
-Here are defined all core/domain messages' handlers
-"""
-
-
-def handler_log(log: message.Log):
- """
- Here is defined the handler for Log Message event
- :param log:
- :return:
- """
-
- eol = message.EOL
- msg = ""
- if log.title:
- msg += ("{title}" + eol).format(title=log.title)
- if log.message:
- if isinstance(log.message, List):
- if not log.title:
- msg += eol
- msg += ("{messages}" + eol).format(
- messages=eol.join(map(lambda m: " - " + m, log.message))
- )
- else:
- msg += log.message
- log.logger.log(msg, log.level)
-
- return msg
diff --git a/ted_sws/event_manager/services/log.py b/ted_sws/event_manager/services/log.py
deleted file mode 100644
index 25db790c3..000000000
--- a/ted_sws/event_manager/services/log.py
+++ /dev/null
@@ -1,15 +0,0 @@
-from typing import Union
-
-from pymongo import MongoClient
-
-from ted_sws.event_manager.adapters.log import is_env_logging_enabled
-from ted_sws.event_manager.adapters.log.log_writer import LogWriter, DICT_TYPE
-
-
-def log_write(title, message: str = None, request: DICT_TYPE = None,
- mongodb_client: MongoClient = None) -> Union[str, bool]:
- if not is_env_logging_enabled():
- return False
-
- log_writer = LogWriter(mongodb_client)
- return log_writer.save(title, message, request)
diff --git a/ted_sws/event_manager/services/logger_from_context.py b/ted_sws/event_manager/services/logger_from_context.py
index 5628ff24f..664f97f29 100644
--- a/ted_sws/event_manager/services/logger_from_context.py
+++ b/ted_sws/event_manager/services/logger_from_context.py
@@ -1,8 +1,7 @@
from typing import Dict, Any, MutableMapping, Union
-from ted_sws.event_manager.adapters.event_handler_config import CLILoggerConfig, NULLLoggerConfig
+from ted_sws.event_manager.adapters.event_handler_config import NULLLoggerConfig, ConsoleLoggerConfig
from ted_sws.event_manager.adapters.event_logger import EventLogger
-from ted_sws.event_manager.adapters.log import ConfigHandlerType
from ted_sws.event_manager.adapters.log import EVENT_LOGGER_CONTEXT_KEY
from ted_sws.event_manager.adapters.log import is_env_logging_enabled
from ted_sws.event_manager.model.event_message import EventMessage, EventMessageProcessType, EventMessageMetadata
@@ -28,7 +27,7 @@ def get_env_logger(logger: EventLogger, is_cli: bool = False) -> EventLogger:
if is_env_logging_enabled():
return logger
elif is_cli:
- logger_config = CLILoggerConfig(config_handlers=ConfigHandlerType.ConsoleHandler.value)
+ logger_config = ConsoleLoggerConfig()
logger_config.get_console_handler().logger.propagate = True
return EventLogger(logger_config)
else:
diff --git a/ted_sws/mapping_suite_processor/entrypoints/cli/cmd_mapping_suite_processor.py b/ted_sws/mapping_suite_processor/entrypoints/cli/cmd_mapping_suite_processor.py
index ff75c3da6..51df9b298 100755
--- a/ted_sws/mapping_suite_processor/entrypoints/cli/cmd_mapping_suite_processor.py
+++ b/ted_sws/mapping_suite_processor/entrypoints/cli/cmd_mapping_suite_processor.py
@@ -8,8 +8,7 @@
from ted_sws.core.adapters.cmd_runner import CmdRunner as BaseCmdRunner, DEFAULT_MAPPINGS_PATH
from ted_sws.data_manager.entrypoints.cli import cmd_generate_mapping_resources
-from ted_sws.event_manager.adapters.log import SeverityLevelType
-from ted_sws.event_manager.adapters.logger import LOG_INFO_TEXT, LOG_WARN_TEXT
+from ted_sws.event_manager.adapters.log import SeverityLevelType, LOG_INFO_TEXT, LOG_WARN_TEXT
from ted_sws.mapping_suite_processor.entrypoints.cli import cmd_yarrrml2rml_converter, cmd_metadata_generator, \
cmd_sparql_generator, cmd_resources_injector
diff --git a/ted_sws/mapping_suite_processor/entrypoints/cli/cmd_metadata_generator.py b/ted_sws/mapping_suite_processor/entrypoints/cli/cmd_metadata_generator.py
index 2b4b1d57a..20733d992 100755
--- a/ted_sws/mapping_suite_processor/entrypoints/cli/cmd_metadata_generator.py
+++ b/ted_sws/mapping_suite_processor/entrypoints/cli/cmd_metadata_generator.py
@@ -7,7 +7,7 @@
from ted_sws.core.adapters.cmd_runner import CmdRunner as BaseCmdRunner, DEFAULT_MAPPINGS_PATH
from ted_sws.data_manager.adapters.mapping_suite_repository import METADATA_FILE_NAME
-from ted_sws.event_manager.adapters.logger import LOG_INFO_TEXT
+from ted_sws.event_manager.adapters.log import LOG_INFO_TEXT
from ted_sws.mapping_suite_processor.entrypoints.cli import CONCEPTUAL_MAPPINGS_FILE_TEMPLATE
from ted_sws.mapping_suite_processor.services.conceptual_mapping_generate_metadata import \
mapping_suite_processor_generate_metadata as generate_metadata
diff --git a/ted_sws/mapping_suite_processor/entrypoints/cli/cmd_sparql_generator.py b/ted_sws/mapping_suite_processor/entrypoints/cli/cmd_sparql_generator.py
index 81d6c2b38..e4b8329b1 100755
--- a/ted_sws/mapping_suite_processor/entrypoints/cli/cmd_sparql_generator.py
+++ b/ted_sws/mapping_suite_processor/entrypoints/cli/cmd_sparql_generator.py
@@ -7,7 +7,7 @@
from ted_sws.core.adapters.cmd_runner import CmdRunner as BaseCmdRunner, DEFAULT_MAPPINGS_PATH
from ted_sws.data_manager.adapters.mapping_suite_repository import VALIDATE_PACKAGE_NAME, SPARQL_PACKAGE_NAME
-from ted_sws.event_manager.adapters.logger import LOG_INFO_TEXT
+from ted_sws.event_manager.adapters.log import LOG_INFO_TEXT
from ted_sws.mapping_suite_processor.entrypoints.cli import CONCEPTUAL_MAPPINGS_FILE_TEMPLATE
from ted_sws.mapping_suite_processor.services.conceptual_mapping_generate_sparql_queries import \
mapping_suite_processor_generate_sparql_queries as generate_sparql_queries, DEFAULT_RQ_NAME
diff --git a/ted_sws/mapping_suite_processor/entrypoints/cli/cmd_triple_store_loader.py b/ted_sws/mapping_suite_processor/entrypoints/cli/cmd_triple_store_loader.py
index 6a1a98e9b..9fad2cd24 100755
--- a/ted_sws/mapping_suite_processor/entrypoints/cli/cmd_triple_store_loader.py
+++ b/ted_sws/mapping_suite_processor/entrypoints/cli/cmd_triple_store_loader.py
@@ -4,7 +4,7 @@
import click
from ted_sws.core.adapters.cmd_runner import CmdRunner as BaseCmdRunner, DEFAULT_MAPPINGS_PATH
-from ted_sws.event_manager.adapters.logger import LOG_INFO_TEXT
+from ted_sws.event_manager.adapters.log import LOG_INFO_TEXT
from ted_sws.mapping_suite_processor.services.load_mapping_suite_output_into_triple_store import \
load_mapping_suite_output_into_triple_store
diff --git a/ted_sws/mapping_suite_processor/entrypoints/cli/cmd_yarrrml2rml_converter.py b/ted_sws/mapping_suite_processor/entrypoints/cli/cmd_yarrrml2rml_converter.py
index 0adb8ef97..fe0289b30 100755
--- a/ted_sws/mapping_suite_processor/entrypoints/cli/cmd_yarrrml2rml_converter.py
+++ b/ted_sws/mapping_suite_processor/entrypoints/cli/cmd_yarrrml2rml_converter.py
@@ -7,7 +7,7 @@
from ted_sws.core.adapters.cmd_runner import CmdRunner as BaseCmdRunner, DEFAULT_MAPPINGS_PATH
from ted_sws.data_manager.adapters.mapping_suite_repository import TRANSFORM_PACKAGE_NAME, MAPPINGS_PACKAGE_NAME
-from ted_sws.event_manager.adapters.logger import LOG_INFO_TEXT
+from ted_sws.event_manager.adapters.log import LOG_INFO_TEXT
from ted_sws.mapping_suite_processor.adapters.yarrrml2rml_converter import YARRRML2RMLConverter
DEFAULT_YARRRML_INPUT_FILE = '{mappings_path}/{mapping_suite_id}/' + TRANSFORM_PACKAGE_NAME + \
diff --git a/ted_sws/mapping_suite_processor/services/conceptual_mapping_generate_sparql_queries.py b/ted_sws/mapping_suite_processor/services/conceptual_mapping_generate_sparql_queries.py
index df7c32a54..825cc94ce 100644
--- a/ted_sws/mapping_suite_processor/services/conceptual_mapping_generate_sparql_queries.py
+++ b/ted_sws/mapping_suite_processor/services/conceptual_mapping_generate_sparql_queries.py
@@ -53,7 +53,8 @@ def sparql_validation_generator(data: pd.DataFrame, base_xpath: str) -> Iterator
f"#description: “{sf_field_id} - {sf_field_name}” in SF corresponds to “{e_form_bt_id} " \
f"{e_form_bt_name}” in eForms. The corresponding XML element is " \
f"{concat_field_xpath(base_xpath, field_xpath)}. " \
- f"The expected ontology instances are epo: {class_path} ." \
+ f"The expected ontology instances are epo: {class_path} .\n" \
+ f"#xpath: {concat_field_xpath(base_xpath, field_xpath, separator=',')}" \
"\n" + "\n" + "\n".join(prefixes) + "\n\n" \
f"ASK WHERE {{ {property_path} }}"
diff --git a/ted_sws/mapping_suite_processor/services/conceptual_mapping_processor.py b/ted_sws/mapping_suite_processor/services/conceptual_mapping_processor.py
index f0d9ed508..db5f4fdbd 100644
--- a/ted_sws/mapping_suite_processor/services/conceptual_mapping_processor.py
+++ b/ted_sws/mapping_suite_processor/services/conceptual_mapping_processor.py
@@ -10,6 +10,8 @@
MappingSuiteRepositoryMongoDB
from ted_sws.data_manager.adapters.notice_repository import NoticeRepository
from ted_sws.mapping_suite_processor.adapters.github_package_downloader import GitHubMappingSuitePackageDownloader
+from ted_sws.mapping_suite_processor.services.mapping_suite_digest_service import \
+ update_digest_api_address_for_mapping_suite
CONCEPTUAL_MAPPINGS_ASSERTIONS = "cm_assertions"
SHACL_SHAPE_INJECTION_FOLDER = "ap_data_shape"
@@ -42,6 +44,8 @@ def mapping_suite_processor_load_package_in_mongo_db(mapping_suite_package_path:
repository_path=mapping_suite_repository_path)
mapping_suite_in_memory = mapping_suite_repository_in_file_system.get(reference=mapping_suite_package_name)
+ update_digest_api_address_for_mapping_suite(mapping_suite_in_memory)
+
if git_last_commit_hash is not None:
mapping_suite_in_memory.git_latest_commit_hash = git_last_commit_hash
diff --git a/ted_sws/mapping_suite_processor/services/mapping_suite_digest_service.py b/ted_sws/mapping_suite_processor/services/mapping_suite_digest_service.py
new file mode 100644
index 000000000..8eb39d91b
--- /dev/null
+++ b/ted_sws/mapping_suite_processor/services/mapping_suite_digest_service.py
@@ -0,0 +1,40 @@
+from ted_sws.core.model.transform import MappingSuite
+from urllib.parse import urlparse
+from ted_sws import config
+
+
+def update_digest_api_address_for_mapping_suite(mapping_suite: MappingSuite,
+ current_digest_api_address: str = config.ID_MANAGER_OLD_API_HOST,
+ new_digest_api_address: str = config.ID_MANAGER_API_HOST,
+ ) -> MappingSuite:
+ """
+ Replace the digest API address
+
+ Given a mapping suite (loaded into memory)
+ AND the current digest API address
+ AND the new digest API address
+ When the replace operation is invoked
+ Then the RML rules in the mapping suite no longer contain references to the CURRENT API address but to the NEW one.
+
+ :param mapping_suite:
+ :param current_digest_api_address:
+ :param new_digest_api_address:
+ :return:
+ """
+
+ if not new_digest_api_address or not current_digest_api_address \
+ or new_digest_api_address == current_digest_api_address:
+ return mapping_suite
+
+ urlparse(current_digest_api_address)
+ urlparse(new_digest_api_address)
+
+ if mapping_suite.transformation_rule_set and mapping_suite.transformation_rule_set.rml_mapping_rules:
+ rml_mapping_rules = mapping_suite.transformation_rule_set.rml_mapping_rules
+ for rml_mapping_rule in rml_mapping_rules:
+ rml_mapping_rule_content = rml_mapping_rule.file_content
+ if rml_mapping_rule_content:
+ rml_mapping_rule.file_content = rml_mapping_rule_content.replace(current_digest_api_address,
+ new_digest_api_address)
+
+ return mapping_suite
diff --git a/ted_sws/notice_transformer/entrypoints/api/digest_service/server.py b/ted_sws/notice_transformer/entrypoints/api/digest_service/server.py
index afa054297..35e3dcda4 100644
--- a/ted_sws/notice_transformer/entrypoints/api/digest_service/server.py
+++ b/ted_sws/notice_transformer/entrypoints/api/digest_service/server.py
@@ -1,13 +1,13 @@
-import logging
import subprocess
import click
from ted_sws import config
-from ted_sws.event_manager.adapters.logger import Logger, LOG_INFO_LEVEL
-from ted_sws.event_manager.model.message_bus import message_bus
-from ted_sws.event_manager.model.message import Log
from ted_sws.notice_transformer.entrypoints.api.digest_service.main import API_PREFIX
+from ted_sws.event_manager.adapters.event_handler_config import ConsoleLoggerConfig
+from ted_sws.event_manager.adapters.event_logger import EventLogger
+from ted_sws.event_manager.model.event_message import EventMessage
+from ted_sws.event_manager.services.logger_from_context import get_env_logger
API_HOST: str = config.ID_MANAGER_API_HOST
API_PORT: int = config.ID_MANAGER_API_PORT
@@ -17,14 +17,8 @@
@click.option('-h', '--host', default=API_HOST)
@click.option('-p', '--port', default=API_PORT, type=int)
def api_server_start(host, port):
- logger = Logger(name="ID_MANAGER_API_SERVER", level=LOG_INFO_LEVEL)
- logger.add_console_handler(formatter=logging.Formatter(
- "[%(asctime)s] - %(name)s - %(levelname)s:\n%(message)s",
- "%Y-%m-%d %H:%M:%S"
- ))
bash_script = f"uvicorn --host {host} --port {port} ted_sws.id_manager.entrypoints.api.main:app --reload"
- message_bus.handle(Log(
- message=f"{bash_script}\n###\nSee http://{host}:{port}{API_PREFIX}/docs for API usage.\n###",
- logger=logger)
- )
+ logger = get_env_logger(EventLogger(ConsoleLoggerConfig(name="API_SERVER")), is_cli=True)
+ logger.info(
+ EventMessage(message=f"{bash_script}\n###\nSee http://{host}:{port}{API_PREFIX}/docs for API usage.\n###"))
subprocess.run(bash_script, shell=True, capture_output=True)
diff --git a/ted_sws/notice_transformer/entrypoints/cli/cmd_mapping_runner.py b/ted_sws/notice_transformer/entrypoints/cli/cmd_mapping_runner.py
index 0d4875ff2..c18f71572 100755
--- a/ted_sws/notice_transformer/entrypoints/cli/cmd_mapping_runner.py
+++ b/ted_sws/notice_transformer/entrypoints/cli/cmd_mapping_runner.py
@@ -9,7 +9,7 @@
from ted_sws.core.adapters.cmd_runner import CmdRunnerForMappingSuite as BaseCmdRunner, DEFAULT_MAPPINGS_PATH, \
DEFAULT_OUTPUT_PATH
from ted_sws.data_manager.adapters.mapping_suite_repository import MappingSuiteRepositoryInFileSystem
-from ted_sws.event_manager.adapters.logger import LOG_INFO_TEXT
+from ted_sws.event_manager.adapters.log import LOG_INFO_TEXT
from ted_sws.notice_transformer.adapters.rml_mapper import RMLMapper, SerializationFormat as RMLSerializationFormat, \
TURTLE_SERIALIZATION_FORMAT
from ted_sws.notice_transformer.services.notice_transformer import transform_test_data
diff --git a/ted_sws/notice_validator/entrypoints/cli/cmd_shacl_runner.py b/ted_sws/notice_validator/entrypoints/cli/cmd_shacl_runner.py
index e52563155..a7636aa67 100755
--- a/ted_sws/notice_validator/entrypoints/cli/cmd_shacl_runner.py
+++ b/ted_sws/notice_validator/entrypoints/cli/cmd_shacl_runner.py
@@ -9,7 +9,7 @@
from ted_sws.core.adapters.cmd_runner import CmdRunner as BaseCmdRunner, DEFAULT_MAPPINGS_PATH
from ted_sws.core.model.manifestation import RDFManifestation, SHACLTestSuiteValidationReport
from ted_sws.data_manager.adapters.mapping_suite_repository import MappingSuiteRepositoryInFileSystem
-from ted_sws.event_manager.adapters.logger import LOG_INFO_TEXT
+from ted_sws.event_manager.adapters.log import LOG_INFO_TEXT
from ted_sws.notice_validator.entrypoints.cli import DEFAULT_RDF_FOLDER, DEFAULT_TEST_SUITE_REPORT_FOLDER
from ted_sws.notice_validator.services.shacl_test_suite_runner import SHACLTestSuiteRunner, generate_shacl_report
import json
diff --git a/ted_sws/notice_validator/entrypoints/cli/cmd_sparql_runner.py b/ted_sws/notice_validator/entrypoints/cli/cmd_sparql_runner.py
index 982703097..65c9aacd9 100755
--- a/ted_sws/notice_validator/entrypoints/cli/cmd_sparql_runner.py
+++ b/ted_sws/notice_validator/entrypoints/cli/cmd_sparql_runner.py
@@ -7,12 +7,15 @@
import click
from ted_sws.core.adapters.cmd_runner import CmdRunner as BaseCmdRunner, DEFAULT_MAPPINGS_PATH
-from ted_sws.core.model.manifestation import RDFManifestation
+from ted_sws.core.model.manifestation import RDFManifestation, XMLManifestation
from ted_sws.data_manager.adapters.mapping_suite_repository import MappingSuiteRepositoryInFileSystem
-from ted_sws.event_manager.adapters.logger import LOG_INFO_TEXT
+from ted_sws.event_manager.adapters.log import LOG_INFO_TEXT
from ted_sws.notice_validator.entrypoints.cli import DEFAULT_RDF_FOLDER, DEFAULT_TEST_SUITE_REPORT_FOLDER
from ted_sws.notice_validator.services.sparql_test_suite_runner import SPARQLTestSuiteRunner, SPARQLReportBuilder, \
SPARQLTestSuiteValidationReport
+from ted_sws.notice_validator.entrypoints.cli.cmd_xpath_coverage_runner import JSON_REPORT_FILE as XPATH_JSON_FILE, \
+ DEFAULT_TEST_SUITE_REPORT_FOLDER
+from ted_sws.core.model.manifestation import XPATHCoverageValidationReport
JSON_VALIDATIONS_REPORT = "sparql_validations.json"
HTML_REPORT = "sparql_{id}.html"
@@ -49,9 +52,14 @@ def save_report(cls, report_path, report_name, report_id, content):
with open(report_path / report_name, "w+") as f:
f.write(content)
- def validate(self, rdf_file, base_report_path):
+ def validate(self, rdf_file, xpath_report, base_report_path):
self.log("Validating " + LOG_INFO_TEXT.format(rdf_file.name) + " ... ")
rdf_manifestation = RDFManifestation(object_data=rdf_file.read_text(encoding="utf-8"))
+ xml_manifestation = None
+ if xpath_report:
+ xml_manifestation = XMLManifestation(object_data="",
+ xpath_coverage_validation=XPATHCoverageValidationReport(
+ **xpath_report))
report_path = base_report_path / DEFAULT_TEST_SUITE_REPORT_FOLDER
report_path.mkdir(parents=True, exist_ok=True)
@@ -60,6 +68,7 @@ def validate(self, rdf_file, base_report_path):
sparql_test_suites = self.mapping_suite.sparql_test_suites
for sparql_test_suite in sparql_test_suites:
test_suite_execution = SPARQLTestSuiteRunner(rdf_manifestation=rdf_manifestation,
+ xml_manifestation=xml_manifestation,
sparql_test_suite=sparql_test_suite,
mapping_suite=self.mapping_suite).execute_test_suite()
@@ -84,7 +93,9 @@ def run_cmd(self):
base_report_path = rdf_path / d.name
for f in d.iterdir():
if f.is_file():
- self.validate(rdf_file=f, base_report_path=base_report_path)
+ xpath_file = f.parent / DEFAULT_TEST_SUITE_REPORT_FOLDER / XPATH_JSON_FILE
+ xpath_report = json.load(open(xpath_file, "r")) if xpath_file.exists() else None
+ self.validate(rdf_file=f, xpath_report=xpath_report, base_report_path=base_report_path)
except Exception as e:
error = e
diff --git a/ted_sws/notice_validator/entrypoints/cli/cmd_validation_summary_runner.py b/ted_sws/notice_validator/entrypoints/cli/cmd_validation_summary_runner.py
index cbfe5a550..0cfb0a504 100755
--- a/ted_sws/notice_validator/entrypoints/cli/cmd_validation_summary_runner.py
+++ b/ted_sws/notice_validator/entrypoints/cli/cmd_validation_summary_runner.py
@@ -10,13 +10,13 @@
from ted_sws.core.model.manifestation import XMLManifestation, RDFManifestation, XPATHCoverageValidationReport, \
SPARQLTestSuiteValidationReport, SHACLTestSuiteValidationReport, ValidationSummaryReport
from ted_sws.core.model.notice import Notice
+from ted_sws.notice_validator.entrypoints.cli import DEFAULT_TEST_SUITE_REPORT_FOLDER
from ted_sws.notice_validator.entrypoints.cli.cmd_shacl_runner import JSON_VALIDATIONS_REPORT as JSON_SHACL_REPORT
from ted_sws.notice_validator.entrypoints.cli.cmd_sparql_runner import JSON_VALIDATIONS_REPORT as JSON_SPARQL_REPORT
from ted_sws.notice_validator.entrypoints.cli.cmd_xpath_coverage_runner import JSON_REPORT_FILE as XPATH_COV_REPORT
from ted_sws.notice_validator.services.validation_summary_runner import generate_validation_summary_report_notices
OUTPUT_FOLDER = '{mappings_path}/{mapping_suite_id}/' + DEFAULT_OUTPUT_PATH
-DEFAULT_TEST_SUITE_REPORT_FOLDER = "test_suite_report"
REPORT_FILE = "validation_summary_report"
CMD_NAME = "CMD_VALIDATION_SUMMARY_RUNNER"
diff --git a/ted_sws/notice_validator/entrypoints/cli/cmd_xpath_coverage_runner.py b/ted_sws/notice_validator/entrypoints/cli/cmd_xpath_coverage_runner.py
index 90a56ef39..deaa47478 100755
--- a/ted_sws/notice_validator/entrypoints/cli/cmd_xpath_coverage_runner.py
+++ b/ted_sws/notice_validator/entrypoints/cli/cmd_xpath_coverage_runner.py
@@ -4,22 +4,21 @@
import os
from pathlib import Path
from typing import List
-from pymongo import MongoClient
+
import click
-from ted_sws import config
from ted_sws.core.adapters.cmd_runner import CmdRunner as BaseCmdRunner, DEFAULT_MAPPINGS_PATH, DEFAULT_OUTPUT_PATH
from ted_sws.core.model.manifestation import XMLManifestation
from ted_sws.core.model.notice import Notice
from ted_sws.data_manager.adapters.mapping_suite_repository import MappingSuiteRepositoryInFileSystem
-from ted_sws.event_manager.adapters.logger import LOG_INFO_TEXT
+from ted_sws.event_manager.adapters.log import LOG_INFO_TEXT
from ted_sws.mapping_suite_processor.entrypoints.cli import CONCEPTUAL_MAPPINGS_FILE_TEMPLATE
from ted_sws.notice_validator.adapters.xpath_coverage_runner import CoverageRunner
+from ted_sws.notice_validator.entrypoints.cli import DEFAULT_TEST_SUITE_REPORT_FOLDER
from ted_sws.notice_validator.services.xpath_coverage_runner import coverage_notice_xpath_report, \
xpath_coverage_html_report, xpath_coverage_json_report
OUTPUT_FOLDER = '{mappings_path}/{mapping_suite_id}/' + DEFAULT_OUTPUT_PATH
-DEFAULT_TEST_SUITE_REPORT_FOLDER = "test_suite_report"
REPORT_FILE = "xpath_coverage_validation"
JSON_REPORT_FILE = REPORT_FILE + ".json"
CMD_NAME = "CMD_XPATH_COVERAGE_RUNNER"
diff --git a/ted_sws/notice_validator/resources/templates/sparql_query_results_report.jinja2 b/ted_sws/notice_validator/resources/templates/sparql_query_results_report.jinja2
index 7b1feba52..1210306db 100644
--- a/ted_sws/notice_validator/resources/templates/sparql_query_results_report.jinja2
+++ b/ted_sws/notice_validator/resources/templates/sparql_query_results_report.jinja2
@@ -10,21 +10,47 @@
HTML report for SPARQL Validation
+
@@ -45,6 +71,7 @@
Description
Query content
Result
+ Details
Error
@@ -57,9 +84,46 @@
{% for result in validation_results %}
{{ result.query.title }}
- {{ result.query.description }}
+
+ Description
+
+ {{ result.query.description }}
+
+
{{ result.query.query | e | replace('\n', ' ') }}
- {{ result.result }}
+ {{ result.result }}
+
+ Details
+
+
+ Query result: {{ result.query_result }}
+ {% if result.query.xpath|length == 0 %}
+ No XPATHs provided
+ {% endif %}
+ Fields are covered: {{ result.fields_covered }}
+ {% if result.query.xpath|length > 0 %}
+
+ Fields:
+
+ {% for field in result.query.xpath %}
+ {{ field }}
+ {% endfor %}
+
+
+ {% endif %}
+ {% if result.missing_fields|length > 0 %}
+
+ Missing fields:
+
+ {% for field in result.missing_fields %}
+ {{ field }}
+ {% endfor %}
+
+
+ {% endif %}
+
+
+
{{ result.error }}
{% if result.result == "True" %}
@@ -132,6 +196,23 @@
}
});
+ $(document).on('click', '.open-dialog', function () {
+ $dialog = $(this).next('.dialog');
+ $dialog.dialog({
+ width: 600,
+ modal: true,
+ buttons: {
+ "Close": function(event, ui) {
+ $dialog.dialog('destroy');
+ }
+ },
+ close: function(event, ui) {
+ $dialog.dialog('destroy');
+ }
+ })
+ $dialog.dialog('open');
+ return false;
+ });
});
\ No newline at end of file
diff --git a/ted_sws/notice_validator/services/sparql_test_suite_runner.py b/ted_sws/notice_validator/services/sparql_test_suite_runner.py
index 8a34c8b54..eebb5e092 100644
--- a/ted_sws/notice_validator/services/sparql_test_suite_runner.py
+++ b/ted_sws/notice_validator/services/sparql_test_suite_runner.py
@@ -5,7 +5,7 @@
from jinja2 import Environment, PackageLoader
from ted_sws.core.model.manifestation import RDFManifestation, SPARQLQueryResult, \
- SPARQLTestSuiteValidationReport, SPARQLQuery
+ SPARQLTestSuiteValidationReport, SPARQLQuery, XMLManifestation
from ted_sws.core.model.notice import Notice
from ted_sws.core.model.transform import SPARQLTestSuite, MappingSuite, FileResource
from ted_sws.data_manager.adapters.repository_abc import NoticeRepositoryABC, MappingSuiteRepositoryABC
@@ -16,8 +16,10 @@
QUERY_METADATA_TITLE = "title"
QUERY_METADATA_DESCRIPTION = "description"
+QUERY_METADATA_XPATH = "xpath"
DEFAULT_QUERY_TITLE = "untitled query"
DEFAULT_QUERY_DESCRIPTION = "un-described query"
+DEFAULT_QUERY_XPATH = []
class SPARQLTestSuiteRunner:
@@ -27,8 +29,9 @@ class SPARQLTestSuiteRunner:
"""
def __init__(self, rdf_manifestation: RDFManifestation, sparql_test_suite: SPARQLTestSuite,
- mapping_suite: MappingSuite):
+ mapping_suite: MappingSuite, xml_manifestation: XMLManifestation = None):
self.rdf_manifestation = rdf_manifestation
+ self.xml_manifestation = xml_manifestation
self.sparql_test_suite = sparql_test_suite
self.mapping_suite = mapping_suite
@@ -49,8 +52,39 @@ def _sparql_query_from_file_resource(cls, file_resource: FileResource) -> SPARQL
if QUERY_METADATA_TITLE in metadata else DEFAULT_QUERY_TITLE
description = metadata[QUERY_METADATA_DESCRIPTION] \
if QUERY_METADATA_DESCRIPTION in metadata else DEFAULT_QUERY_DESCRIPTION
+ xpath = metadata[QUERY_METADATA_XPATH].split(",") if QUERY_METADATA_XPATH in metadata and metadata[
+ QUERY_METADATA_XPATH] else DEFAULT_QUERY_XPATH
query = cls._sanitize_query(file_resource.file_content)
- return SPARQLQuery(title=title, description=description, query=query)
+ return SPARQLQuery(title=title, description=description, xpath=xpath, query=query)
+
+ def _process_sparql_ask_result(self, query_result, sparql_query: SPARQLQuery,
+ sparql_query_result: SPARQLQueryResult):
+ ask_answer = query_result.askAnswer
+ sparql_query_result.query_result = str(ask_answer)
+
+ result = ask_answer
+
+ xpath_coverage_validation = None
+ if self.xml_manifestation:
+ xpath_coverage_validation = self.xml_manifestation.xpath_coverage_validation
+ if xpath_coverage_validation and xpath_coverage_validation.validation_result:
+ xpath_validation_result = xpath_coverage_validation.validation_result
+
+ sparql_query_result.fields_covered = any(
+ map(lambda v: v in xpath_validation_result.xpath_covered, sparql_query.xpath))
+
+ sparql_query_xpath = set(sparql_query.xpath)
+ xpaths_in_notice = sparql_query_xpath & set(xpath_validation_result.xpath_covered)
+ if len(xpaths_in_notice) < len(sparql_query_xpath):
+ sparql_query_result.missing_fields = list(sparql_query_xpath - xpaths_in_notice)
+
+ if not ask_answer and not sparql_query_result.fields_covered:
+ result = True
+ elif (not ask_answer and sparql_query_result.fields_covered) or (
+ ask_answer and not sparql_query_result.fields_covered):
+ result = False
+
+ sparql_query_result.result = str(result)
def execute_test_suite(self) -> SPARQLTestSuiteValidationReport:
"""
@@ -63,14 +97,15 @@ def execute_test_suite(self) -> SPARQLTestSuiteValidationReport:
validation_results=[],
object_data="SPARQLTestSuiteExecution")
for query_file_resource in self.sparql_test_suite.sparql_tests:
- sparql_query = self._sparql_query_from_file_resource(file_resource=query_file_resource)
+ sparql_query: SPARQLQuery = self._sparql_query_from_file_resource(file_resource=query_file_resource)
sparql_query_result = SPARQLQueryResult(query=sparql_query)
try:
sparql_query_result.identifier = Path(query_file_resource.file_name).stem
query_result = sparql_runner.query(sparql_query.query)
- sparql_query_result.result = str(
- query_result.askAnswer) if query_result.type == "ASK" else query_result.serialize(
- format="json")
+ if query_result.type == "ASK":
+ self._process_sparql_ask_result(query_result, sparql_query, sparql_query_result)
+ else:
+ sparql_query_result.query_result = query_result.serialize(format="json")
except Exception as e:
sparql_query_result.error = str(e)[:100]
test_suite_executions.validation_results.append(sparql_query_result)
@@ -105,6 +140,7 @@ def sparql_validation(rdf_manifestation: RDFManifestation) -> List[SPARQLTestSui
reports = []
for sparql_test_suite in sparql_test_suites:
test_suite_execution = SPARQLTestSuiteRunner(rdf_manifestation=rdf_manifestation,
+ xml_manifestation=notice.xml_manifestation,
sparql_test_suite=sparql_test_suite,
mapping_suite=mapping_suite_package).execute_test_suite()
report_builder = SPARQLReportBuilder(sparql_test_suite_execution=test_suite_execution)
diff --git a/ted_sws/rml_to_html/entrypoints/cli/cmd_rml_report_generator.py b/ted_sws/rml_to_html/entrypoints/cli/cmd_rml_report_generator.py
index 52096863b..e7910ef2e 100755
--- a/ted_sws/rml_to_html/entrypoints/cli/cmd_rml_report_generator.py
+++ b/ted_sws/rml_to_html/entrypoints/cli/cmd_rml_report_generator.py
@@ -6,7 +6,7 @@
from ted_sws.core.adapters.cmd_runner import CmdRunner as BaseCmdRunner, DEFAULT_MAPPINGS_PATH, DEFAULT_OUTPUT_PATH
from ted_sws.data_manager.adapters.mapping_suite_repository import MappingSuiteRepositoryInFileSystem
-from ted_sws.event_manager.adapters.logger import LOG_INFO_TEXT
+from ted_sws.event_manager.adapters.log import LOG_INFO_TEXT
from ted_sws.rml_to_html.services.rml_to_html import rml_files_to_html_report
DEFAULT_OUTPUT_FOLDER = '{mappings_path}/{mapping_suite_id}/' + DEFAULT_OUTPUT_PATH
diff --git a/tests/e2e/event_manager/adapters/test_log_repository.py b/tests/e2e/event_manager/adapters/test_log_repository.py
deleted file mode 100644
index 00829f862..000000000
--- a/tests/e2e/event_manager/adapters/test_log_repository.py
+++ /dev/null
@@ -1,16 +0,0 @@
-from ted_sws.event_manager.adapters.log_repository import LogRepository
-from ted_sws.event_manager.model.message import DBProcessLog as Log
-
-TEST_DATABASE_NAME = "test_logs_database_name"
-
-
-def test_log_repository_add(mongodb_client):
- mongodb_client.drop_database(TEST_DATABASE_NAME)
- log_repository = LogRepository(database_name=TEST_DATABASE_NAME)
- log = Log(payload={}, name="TEST", message="TEST_LOG")
- log_repository.add(log)
- result: Log = log_repository.create_log_from_dict(log_repository.collection.find_one())
- assert result
- assert result.name == "TEST"
- assert result.message == "TEST_LOG"
- mongodb_client.drop_database(TEST_DATABASE_NAME)
diff --git a/tests/test_data/mapping_suite_processor/digest_service/rml_modules/s1_contracting_authority.rml.ttl b/tests/test_data/mapping_suite_processor/digest_service/rml_modules/s1_contracting_authority.rml.ttl
new file mode 100644
index 000000000..6beb93fe4
--- /dev/null
+++ b/tests/test_data/mapping_suite_processor/digest_service/rml_modules/s1_contracting_authority.rml.ttl
@@ -0,0 +1,537 @@
+#--- s1_contracting_authority.rml.ttl ---
+@prefix owl: .
+@prefix rdfs: .
+@prefix xsd: .
+@prefix skos: .
+@prefix rr: .
+@prefix rml: .
+@prefix locn: .
+@prefix dct: .
+@prefix tedm: .
+@prefix epo: .
+@prefix epd: .
+@prefix cpov: .
+@prefix legal: .
+tedm:contracting_authority
+ a owl:Ontology ;
+ owl:imports dct:, ;
+ dct:description """
+ This module provides the mapping definitions for the ..."""@en ;
+ rdfs:label "TED-SWS mapping of "@en ;
+ dct:date "2022-05-11"^^xsd:date .
+tedm:BuyerOrganisationGroup a rr:TripleMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasMember;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:AdditionalOrganisation;
+ ]
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasMember;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:Organisation;
+ ]
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasMainActivityType ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:mainActivity;
+ rr:joinCondition [
+ rr:child "../CA_ACTIVITY/@VALUE";
+ rr:parent "xmlElement";
+ ];
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasMainActivityType ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:mainActivity;
+ rr:joinCondition [
+ rr:child "../CE_ACTIVITY/@VALUE";
+ rr:parent "xmlElement";
+ ];
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasBuyerType ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:buyerType;
+ rr:joinCondition [
+ rr:child "../CA_TYPE/@VALUE";
+ rr:parent "xmlElement";
+ ];
+ ] ;
+ ] .
+
+tedm:AdditionalBuyer a rr:TripleMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasContactPointInRole ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:AdditionalContactPoint;
+ rr:joinCondition [
+ rr:child "unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path()) || '?response_type=raw')";
+ rr:parent "unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path()) || '?response_type=raw')";
+ ];
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:playedBy ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:AdditionalOrganisation;
+ rr:joinCondition [
+ rr:child "unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path()) || '?response_type=raw')";
+ rr:parent "unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path()) || '?response_type=raw')";
+ ];
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasBuyerProfile ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:AdditionalBuyerProfile;
+ rr:joinCondition [
+ rr:child "unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path()) || '?response_type=raw')";
+ rr:parent "unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path()) || '?response_type=raw')";
+ ];
+ ] ;
+ ] .
+tedm:AdditionalBuyerCP a rr:TripleMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasContactPointInRole ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:AdditionalContactPoint;
+ rr:joinCondition [
+ rr:child "unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path()) || '?response_type=raw')";
+ rr:parent "unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path()) || '?response_type=raw')";
+ ];
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:playedBy ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:AdditionalOrganisation;
+ rr:joinCondition [
+ rr:child "unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path()) || '?response_type=raw')";
+ rr:parent "unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path()) || '?response_type=raw')";
+ ];
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasBuyerProfile ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:AdditionalBuyerProfile;
+ rr:joinCondition [
+ rr:child "unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path()) || '?response_type=raw')";
+ rr:parent "unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path()) || '?response_type=raw')";
+ ];
+ ] ;
+ ] .
+
+tedm:AdditionalBuyerProfile a rr:TripleMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasURL;
+ rr:objectMap
+ [
+ rml:reference "URL_BUYER"
+ ]
+ ] .
+
+tedm:AdditionalOrganisation a rr:TripleMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate legal:registeredAddress ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:AdditionalOrganisationAddress;
+ rr:joinCondition [
+ rr:child "unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path()) || '?response_type=raw')";
+ rr:parent "unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path()) || '?response_type=raw')";
+ ];
+ ]
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasID;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:AdditionalOrganisationIdentifier;
+ rr:joinCondition [
+ rr:child "unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path()) || '?response_type=raw')";
+ rr:parent "unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path()) || '?response_type=raw')";
+ ];
+ ]
+ ] .
+tedm:AdditionalOrganisationIdentifier a rr:TripleMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasIdentifierValue;
+ rr:objectMap
+ [
+ rml:reference "NATIONALID"
+ ]
+ ] .
+tedm:AdditionalContactPoint a rr:TriplesMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasInternetAddress ;
+ rr:objectMap
+ [
+ rml:reference "URL_GENERAL";
+ #-rr:termType rr:IRI;
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate cpov:email ;
+ rr:objectMap
+ [
+ rml:reference "E_MAIL"
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasFax ;
+ rr:objectMap
+ [
+ rml:reference "FAX"
+ ]
+ ] ;
+
+ rr:predicateObjectMap
+ [
+ rr:predicate cpov:telephone ;
+ rr:objectMap
+ [
+ rml:reference "PHONE"
+ ]
+ ] .
+tedm:AdditionalOrganisationAddress a rr:TriplesMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate locn:postName ;
+ rr:objectMap
+ [
+ rml:reference "TOWN"
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate locn:thoroughfare ;
+ rr:objectMap
+ [
+ rml:reference "ADDRESS"
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate locn:postCode ;
+ rr:objectMap
+ [
+ rml:reference "POSTAL_CODE"
+ ] ;
+ ] ;
+
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasNutsCode ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:nuts;
+ rr:joinCondition [
+ rr:child "*:NUTS/@CODE";
+ rr:parent "code.value";
+ ];
+ ] ;
+ ] ;
+# rr:predicateObjectMap
+# [
+# rr:predicate epo:hasNutsCode ;
+# rr:objectMap
+# [
+# rml:reference "if (not(exists(*:NUTS/@CODE))) then 'http://data.europa.eu/nuts/OP_DATPRO' else null";
+# rr:termType rr:IRI;
+# ]
+#
+# ] ;
+# rr:predicateObjectMap
+# [
+# rr:predicate epo:hasCountryCode ;
+# rr:objectMap
+# [
+# rml:reference "if (not(exists(COUNTRY/@VALUE))) then 'http://publications.europa.eu/resource/authority/country/OP_DATPRO' else null";
+# rr:termType rr:IRI;
+# ]
+#
+# ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasCountryCode ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:country;
+ rr:joinCondition [
+ rr:child "COUNTRY/@VALUE";
+ rr:parent "code.value";
+ ];
+ ] ;
+ ] .
+
+tedm:BuyerCP a rr:TripleMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:playedBy ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:Organisation
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasContactPointInRole ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:ContactPoint
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasBuyerProfile ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:BuyerProfile
+ ] ;
+ ] .
+tedm:Buyer a rr:TripleMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:playedBy ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:Organisation
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasContactPointInRole ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:ContactPoint
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasBuyerProfile ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:BuyerProfile
+ ] ;
+ ] .
+
+tedm:BuyerProfile a rr:TripleMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasURL;
+ rr:objectMap
+ [
+ rml:reference "."
+ ]
+ ] .
+
+tedm:Organisation a rr:TripleMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate legal:registeredAddress ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:OrganisationAddress
+ ]
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasID;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:OrganisationIdentifier
+ ]
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasMainActivityType ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:mainActivity;
+ rr:joinCondition [
+ rr:child "if(not(exists(/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL[1]))) then /TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/CA_ACTIVITY/@VALUE else null";
+ rr:parent "xmlElement";
+ ];
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasMainActivityType ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:mainActivity;
+ rr:joinCondition [
+ rr:child "if(not(exists(/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL[1]))) then /TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/CE_ACTIVITY/@VALUE else null";
+ rr:parent "xmlElement";
+ ];
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasBuyerType ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:buyerType;
+ rr:joinCondition [
+ rr:child "if(not(exists(/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL[1]))) then /TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/CA_TYPE/@VALUE else null";
+ rr:parent "xmlElement";
+ ];
+ ] ;
+ ] .
+tedm:OrganisationIdentifier a rr:TripleMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasIdentifierValue;
+ rr:objectMap
+ [
+ rml:reference "NATIONALID"
+ ]
+ ] .
+tedm:ContactPoint a rr:TriplesMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate cpov:email ;
+ rr:objectMap
+ [
+ rml:reference "E_MAIL"
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasFax ;
+ rr:objectMap
+ [
+ rml:reference "FAX"
+ ]
+ ] ;
+
+ rr:predicateObjectMap
+ [
+ rr:predicate cpov:telephone ;
+ rr:objectMap
+ [
+ rml:reference "PHONE"
+ ]
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasInternetAddress ;
+ rr:objectMap
+ [
+ rml:reference "URL_GENERAL";
+ #-rr:termType rr:IRI;
+ ] ;
+ ] .
+tedm:OrganisationAddress a rr:TriplesMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate locn:postName ;
+ rr:objectMap
+ [
+ rml:reference "TOWN"
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate locn:thoroughfare ;
+ rr:objectMap
+ [
+ rml:reference "ADDRESS"
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate locn:postCode ;
+ rr:objectMap
+ [
+ rml:reference "POSTAL_CODE"
+ ] ;
+ ] ;
+
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasNutsCode ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:nuts;
+ rr:joinCondition [
+ rr:child "*:NUTS/@CODE";
+ rr:parent "code.value";
+ ];
+ ] ;
+ ] ;
+# rr:predicateObjectMap
+# [
+# rr:predicate epo:hasNutsCode ;
+# rr:objectMap
+# [
+# rml:reference "if (not(exists(*:NUTS/@CODE))) then 'http://data.europa.eu/nuts/OP_DATPRO' else null";
+# rr:termType rr:IRI;
+# ]
+#
+# ] ;
+# rr:predicateObjectMap
+# [
+# rr:predicate epo:hasCountryCode ;
+# rr:objectMap
+# [
+# rml:reference "if (not(exists(COUNTRY/@VALUE))) then 'http://publications.europa.eu/resource/authority/country/OP_DATPRO' else null";
+# rr:termType rr:IRI;
+# ]
+#
+# ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasCountryCode ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:country;
+ rr:joinCondition [
+ rr:child "COUNTRY/@VALUE";
+ rr:parent "code.value";
+ ];
+ ] ;
+ ] .
+
+
+
+
+
+
+
+
+
diff --git a/tests/test_data/mapping_suite_processor/digest_service/rml_modules/s2_object.rml.ttl b/tests/test_data/mapping_suite_processor/digest_service/rml_modules/s2_object.rml.ttl
new file mode 100644
index 000000000..c31ac9b50
--- /dev/null
+++ b/tests/test_data/mapping_suite_processor/digest_service/rml_modules/s2_object.rml.ttl
@@ -0,0 +1,482 @@
+#--- s2_object.rml.ttl ---
+@prefix owl: .
+@prefix rdfs: .
+@prefix xsd: .
+@prefix skos: .
+@prefix rr: .
+@prefix rml: .
+@prefix locn: .
+@prefix dct: .
+@prefix tedm: .
+@prefix epo: .
+@prefix epd: .
+
+tedm:object
+ a owl:Ontology ;
+ owl:imports dct:, ;
+ dct:description """
+ This module provides the mapping definitions for the ..."""@en ;
+ rdfs:label "TED-SWS mapping of "@en ;
+ dct:date "2022-05-11"^^xsd:date .
+
+tedm:NoticeAwardInformation a rr:TriplesMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasTotalAwardedValue ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:ProcurementMonetaryValue
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasProcurementLowestReceivedTenderValue ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:ProcurementLowestReceivedTenderValue;
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasProcurementHighestReceivedTenderValue ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:ProcurementHighestReceivedTenderValue;
+
+ ] ;
+ ] .
+
+tedm:ProcurementMonetaryValue a rr:TriplesMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasAmountValue ;
+ rr:objectMap
+ [
+ rml:reference "VAL_TOTAL";
+ rr:datatype xsd:decimal
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasCurrency ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:currency;
+ rr:joinCondition [
+ rr:child "VAL_TOTAL/@CURRENCY";
+ rr:parent "code.value";
+ ];
+ ] ;
+ ] .
+tedm:ProcurementLowestReceivedTenderValue a rr:TriplesMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasAmountValue ;
+ rr:objectMap
+ [
+ rml:reference "VAL_RANGE_TOTAL/LOW";
+ rr:datatype xsd:decimal
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasCurrency ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:currency;
+ rr:joinCondition [
+ rr:child "VAL_RANGE_TOTAL/@CURRENCY";
+ rr:parent "code.value";
+ ];
+ ] ;
+ ] .
+
+tedm:ProcurementHighestReceivedTenderValue a rr:TriplesMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasAmountValue ;
+ rr:objectMap
+ [
+ rml:reference "VAL_RANGE_TOTAL/HIGH";
+ rr:datatype xsd:decimal
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasCurrency ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:currency;
+ rr:joinCondition [
+ rr:child "VAL_RANGE_TOTAL/@CURRENCY";
+ rr:parent "code.value";
+ ];
+ ] ;
+ ] .
+tedm:ProcedureSpecificTerm a rr:TriplesMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasCrossBorderLaw;
+ rr:objectMap
+ [
+ rml:reference "PROCUREMENT_LAW"
+ ]
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:isAwardedByCPB ;
+ rr:objectMap
+ [
+ rml:reference "if(exists(CENTRAL_PURCHASING)) then 'true' else 'false'";
+ rr:datatype xsd:boolean
+ ] ;
+ ] .
+tedm:Procedure a rr:TriplesMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:isSubjectToProcedureSpecificTerm ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:ProcedureSpecificTerm
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasProcurementScopeDividedIntoLot ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:Lot
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:isJointProcurement ;
+ rr:objectMap
+ [
+ rml:reference "if(exists(/TED_EXPORT/FORM_SECTION/F03_2014[1]/CONTRACTING_BODY/JOINT_PROCUREMENT_INVOLVED)) then 'true' else 'false'";
+ rr:datatype xsd:boolean
+ ] ;
+ ] ;
+
+
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasOverallPurpose ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:ProcedurePurpose
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasID;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:ProcedureIdentifier
+ ]
+ ] .
+
+tedm:ProcedurePurpose a rr:TriplesMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasAdditionalClassification ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:cpvsuppl;
+ rr:joinCondition [
+ rr:child "CPV_MAIN/CPV_SUPPLEMENTARY_CODE/@CODE";
+ rr:parent "code.value";
+ ];
+ ] ;
+
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasMainClassification ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:cpv;
+ rr:joinCondition [
+ rr:child "CPV_MAIN/CPV_CODE/@CODE";
+ rr:parent "code.value";
+ ];
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasContractNatureType ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:contractNature ;
+ rr:joinCondition [
+ rr:child "lower-case(TYPE_CONTRACT/@CTYPE)";
+ rr:parent "code.value";
+ ];
+ ] ;
+ ] .
+
+tedm:Notice a rr:TriplesMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasID;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:NoticeIdentifier;
+ rr:joinCondition [
+ rr:child "unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path()) || '?response_type=raw')";
+ rr:parent "unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path()) || '?response_type=raw')";
+ ];
+ ]
+ ] .
+tedm:NoticeIdentifier a rr:TripleMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasIdentifierValue;
+ rr:objectMap
+ [
+ rml:reference "NOTICE_NUMBER_OJ"
+ ]
+ ] .
+
+tedm:Lot a rr:TriplesMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:isUsingEUFunds;
+ rr:objectMap
+ [
+ rml:reference "if(exists(EU_PROGR_RELATED)) then 'true' else 'false'";
+ rr:datatype xsd:boolean
+ ]
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasID;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:LotIdentifier;
+ rr:joinCondition [
+ rr:child "unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path()) || '?response_type=raw')";
+ rr:parent "unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path()) || '?response_type=raw')";
+ ];
+ ]
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:isFundedBy;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:Fund;
+ rr:joinCondition [
+ rr:child "unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path()) || '?response_type=raw')";
+ rr:parent "unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path()) || '?response_type=raw')";
+ ];
+ ]
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasPurpose ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:LotPurpose;
+ rr:joinCondition [
+ rr:child "unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path()) || '?response_type=raw')";
+ rr:parent "unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path()) || '?response_type=raw')";
+ ];
+ ]
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:foreseesContractSpecificTerm ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:ContractTerm;
+ rr:joinCondition [
+ rr:child "unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path()) || '?response_type=raw')";
+ rr:parent "unparsed-text('https://digest-api.ted-data.eu/api/v1/hashing/fn/uuid/' || encode-for-uri(path()) || '?response_type=raw')";
+ ];
+ ]
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:specifiesAwardCriterion ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:AwardCriterionQuality;
+ rr:joinCondition [
+ rr:child "./@ITEM";
+ rr:parent "ancestor::OBJECT_DESCR/@ITEM";
+ ];
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:specifiesAwardCriterion ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:AwardCriterionPrice;
+ rr:joinCondition [
+ rr:child "./@ITEM";
+ rr:parent "ancestor::OBJECT_DESCR/@ITEM";
+ ];
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:specifiesAwardCriterion ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:AwardCriterionCost;
+ rr:joinCondition [
+ rr:child "./@ITEM";
+ rr:parent "ancestor::OBJECT_DESCR/@ITEM";
+ ];
+ ] ;
+ ] .
+tedm:AwardCriterionQuality a rr:TripleMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasAwardCriterionType ;
+ rr:objectMap
+ [
+ rr:template "http://publications.europa.eu/resource/authority/award-criterion-type/quality";
+ rr:termType rr:IRI
+ ] ;
+ ] .
+tedm:AwardCriterionPrice a rr:TripleMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasAwardCriterionType ;
+ rr:objectMap
+ [
+ rr:template "http://publications.europa.eu/resource/authority/award-criterion-type/price";
+ rr:termType rr:IRI
+ ] ;
+ ] .
+tedm:AwardCriterionCost a rr:TripleMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasAwardCriterionType ;
+ rr:objectMap
+ [
+ rr:template "http://publications.europa.eu/resource/authority/award-criterion-type/cost";
+ rr:termType rr:IRI
+ ] ;
+ ] .
+tedm:ContractTerm a rr:TriplesMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:definesSpecificPlaceOfPerformance ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:ContractTermeLocation;
+ rr:joinCondition [
+ rr:child "./@ITEM";
+ rr:parent "./@ITEM";
+ ];
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasOptions;
+ rr:objectMap
+ [
+ rml:reference "if(exists(OPTIONS)) then 'true' else 'false'";
+ rr:datatype xsd:boolean
+ ]
+ ] .
+tedm:ContractTermeLocation a rr:TriplesMap ;
+# rr:predicateObjectMap
+# [
+# rr:predicate epo:hasNutsCode ;
+# rr:objectMap
+# [
+# rml:reference "if (not(exists(./*:NUTS/@CODE))) then 'http://data.europa.eu/nuts/OP_DATPRO' else null";
+# rr:termType rr:IRI;
+# ]
+#
+# ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasNutsCode ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:nuts;
+ rr:joinCondition [
+ rr:child "./*:NUTS/@CODE";
+ rr:parent "code.value";
+ ];
+ ] ;
+ ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate locn:address ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:ContractTermeLocationAddress;
+ rr:joinCondition [
+ rr:child "./@ITEM";
+ rr:parent "./@ITEM";
+ ];
+ ] ;
+ ] .
+
+tedm:LotPurpose a rr:TriplesMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasAdditionalClassification ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:cpvsuppl;
+ rr:joinCondition [
+ rr:child "CPV_ADDITIONAL/CPV_SUPPLEMENTARY_CODE/@CODE";
+ rr:parent "code.value";
+ ];
+ ] ;
+
+ ] ;
+# rr:predicateObjectMap
+# [
+# rr:predicate epo:hasAdditionalClassification ;
+# rr:objectMap
+# [
+# rml:reference "if (not(exists(CPV_ADDITIONAL/CPV_SUPPLEMENTARY_CODE/@CODE))) then 'http://data.europa.eu/cpv/cpv/OP_DATPRO' else null";
+# rr:termType rr:IRI;
+# ]
+#
+# ] ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasMainClassification ;
+ rr:objectMap
+ [
+ rr:parentTriplesMap tedm:cpv;
+ rr:joinCondition [
+ rr:child "CPV_ADDITIONAL/CPV_CODE/@CODE";
+ rr:parent "code.value";
+ ];
+ ] ;
+ ] .
+# rr:predicateObjectMap
+# [
+# rr:predicate epo:hasMainClassification ;
+# rr:objectMap
+# [
+# rml:reference "if (not(exists(CPV_ADDITIONAL/CPV_CODE/@CODE))) then 'http://data.europa.eu/cpv/cpv/OP_DATPRO' else null";
+# rr:termType rr:IRI;
+# ]
+#
+# ] ;
+
+tedm:LotIdentifier a rr:TripleMap ;
+ rr:predicateObjectMap
+ [
+ rr:predicate epo:hasIdentifierValue;
+ rr:objectMap
+ [
+ rml:reference "LOT_NO"
+ ]
+ ] .
+
+
+
+
diff --git a/tests/test_data/notice_validator/test_repository/test_sparql_package/metadata.json b/tests/test_data/notice_validator/test_repository/test_sparql_package/metadata.json
new file mode 100644
index 000000000..0454de48c
--- /dev/null
+++ b/tests/test_data/notice_validator/test_repository/test_sparql_package/metadata.json
@@ -0,0 +1 @@
+{"title": "F03", "identifier": "F03", "created_at": "2022-04-29T16:41:52.018830", "version": "0.0.1", "ontology_version": "3.0.0.alpha", "xsd_version": "R2.0.9.S05.E01", "metadata_constraints": {"constraints": {"form_number": ["F03"], "legal_basis": ["*"], "year": ["*"], "notice_type": [], "form_type": []}}}
\ No newline at end of file
diff --git a/tests/test_data/notice_validator/test_repository/test_sparql_package/output/notice/notice.ttl b/tests/test_data/notice_validator/test_repository/test_sparql_package/output/notice/notice.ttl
new file mode 100644
index 000000000..48b79b9cf
--- /dev/null
+++ b/tests/test_data/notice_validator/test_repository/test_sparql_package/output/notice/notice.ttl
@@ -0,0 +1,356 @@
+@prefix cccev: .
+@prefix dct: .
+@prefix epd: .
+@prefix epo: .
+@prefix locn: .
+@prefix org: .
+@prefix owl: .
+@prefix ql: .
+@prefix rdfs: .
+@prefix rml: .
+@prefix rr: .
+@prefix skos: .
+@prefix tedm: .
+@prefix xsd: .
+
+
+ a epo:AwardCriterion;
+ epo:hasAwardCriterionType .
+
+
+ a epo:Business;
+ epo:hasBusinessSize true .
+
+
+ a epo:Buyer;
+ epo:hasBuyerProfile ;
+ epo:hasBuyerType ;
+ epo:hasMainActivityType ;
+ epo:playedBy .
+
+
+ a epo:BuyerProfile;
+ epo:hasURL "http://bip.malopolska.pl/umwm/" .
+
+
+ a epo:Channel;
+ epo:hasURL "http://www.malopolska.pl" .
+
+
+ a epo:ContactPoint;
+ epo:hasDescription """Maciej Lewandowski, Urząd Marszałkowski Województwa Małopolskiego, Departament
+ Generalny, ul. Racławicka 56, 30-017 Kraków
+ """@pl;
+ cccev:email "przetargi@umwm.pl";
+ cccev:telephone "+48 514952070" .
+
+
+ a epo:Contract;
+ epo:bindsBuyer ;
+ epo:bindsContractor ;
+ epo:hasContractConclusionDate "2020-11-25";
+ epo:hasTitle """
+ Dostawa energii elektrycznej dla Urzędu Marszałkowskiego Województwa Małopolskiego, wojewódzkich
+ samorządowych jednostek organizacyjnych oraz wojewódzkich osób prawnych w 2021 r.
+
+ """@pl;
+ epo:includesLot ;
+ epo:includesLotAwardOutcome ;
+ epo:signedBySignatory .
+
+
+ a epo:ContactPoint .
+
+
+ a org:Organization;
+ epo:hasName "Tauron Sprzedaż Sp. z o.o."@pl;
+ epo:hasPrimaryContactPoint ;
+ epo:hasRegisteredAddress .
+
+
+ a locn:Address;
+ locn:adminUnitL1 ;
+ locn:adminUnitL2 ;
+ locn:postCode "30-417";
+ locn:postName "Kraków";
+ locn:thoroughfare "ul. Łagiewnicka 60" .
+
+
+ a epo:ContractSignatoryOnContractorSide;
+ epo:playedBy .
+
+
+ a epo:ContractTerm;
+ epo:definesSpecificPlaceOfPerformance ;
+ epo:hasOptions true;
+ epo:hasReservedExecution .
+
+
+ a dct:Location;
+ epo:hasNutsCode ;
+ locn:address .
+
+
+ a locn:Address;
+ locn:fullAddress """
+ Małopolska
+ """@pl .
+
+
+ a epo:Contractor;
+ epo:playedBy .
+
+
+ a epo:Lot;
+ epo:describesLot ;
+ epo:foreseesContractTerm ;
+ epo:hasPurpose ;
+ epo:isCoveredbyGPA "false";
+ epo:isSubjectToLotSpecificTerm ;
+ epo:isUsingEUFunds true;
+ epo:specifiesAwardCriterion .
+
+
+ a epo:LotAwardOutcome;
+ epo:comprisesTenderAwardOutcome ;
+ epo:hasAwardStatus .
+
+
+ a epo:Purpose .
+
+
+ a epo:Mediator;
+ epo:playedBy .
+
+
+ a epo:ContactPoint;
+ epo:hasFax "+48 224587800";
+ cccev:email "odwolania@uzp.gov.pl";
+ cccev:telephone "+48 224587801" .
+
+
+ a org:Organization;
+ epo:hasDeliveryGateway ;
+ epo:hasID ;
+ epo:hasName "Krajowa Izba Odwoławcza"@pl;
+ epo:hasPrimaryContactPoint ;
+ epo:hasRegisteredAddress .
+
+
+ a locn:Address;
+ locn:adminUnitL2 ;
+ locn:postCode "02-676";
+ locn:postName "Warszawa";
+ locn:thoroughfare "ul. Postępu 17a" .
+
+
+ a epo:Channel;
+ epo:hasURL "http://uzp.gov.pl" .
+
+
+ a epo:Identifier;
+ epo:hasIdentifierValue "Krajowa Izba Odwoławcza" .
+
+
+ a epo:MonetaryValue;
+ epo:hasAmountValue 7713232.2;
+ epo:hasCurrency .
+
+
+ a epo:MonetaryValue;
+ epo:hasAmountValue 9202657.34 .
+
+
+ a epo:MonetaryValue;
+ epo:hasAmountValue 9164708.23 .
+
+
+ a epo:MonetaryValue;
+ epo:hasAmountValue 9164708.23 .
+
+
+ a epo:Notice;
+ epo:hasID .
+
+
+ a epo:Identifier;
+ epo:hasIdentifierValue "2020/S 173-417750" .
+
+
+ a org:Organization;
+ epo:hasDeliveryGateway ;
+ epo:hasName "Województwo Małopolskie – Urząd Marszałkowski Województwa Małopolskiego"@pl;
+ epo:hasPrimaryContactPoint ;
+ epo:hasRegisteredAddress .
+
+
+ a locn:Address;
+ locn:adminUnitL1 ;
+ locn:adminUnitL2 ;
+ locn:postCode "31-156";
+ locn:postName "Kraków";
+ locn:thoroughfare "ul. Basztowa 22" .
+
+
+ a epo:Procedure;
+ epo:hasAcceleratedProcedureJustification """Zamawiający zgodnie z treścią art. 43 ust. 2b pkt 1 ustawy Pzp opublikował wstępne ogłoszenie
+ informacyjne, które zawierało wszystkie informacje wymagane dla ogłoszenia o zamówieniu, w
+ zakresie, w jakim były one dostępne w chwili publikacji wstępnego ogłoszenia informacyjnego, i
+ zostało ono zamieszczone w profilu nabywcy na co najmniej 35 dni i nie więcej niż 12 miesięcy
+ przed dniem przekazania ogłoszenia o zamówieniu Urzędowi Publikacji Unii Europejskiej.
+ Zamawiający w celu skrócenia terminu składania ofert zamieścił wstępne ogłoszenie informacyjne
+ 2020/S 108-261221 z dnia 5 czerwca 2020 r. na BIPie w dniu 5 czerwca 2020 r.
+ """;
+ epo:hasDescription """
+ Dostawa energii elektrycznej dla Urzędu Marszałkowskiego Województwa Małopolskiego, wojewódzkich
+ samorządowych jednostek organizacyjnych oraz wojewódzkich osób prawnych w 2021 r.
+
+ """@pl;
+ epo:hasID ;
+ epo:hasOverallPurpose ;
+ epo:hasProcedureType ;
+ epo:hasTitle """
+ Dostawa energii elektrycznej dla Urzędu Marszałkowskiego Województwa Małopolskiego, wojewódzkich
+ samorządowych jednostek organizacyjnych oraz wojewódzkich osób prawnych w 2021 r.
+
+ """@pl;
+ epo:isAccelerated true;
+ epo:isCompetitionTermination false .
+
+
+ a epo:Identifier;
+ epo:hasIdentifierValue "DG-VI 272.11.2020" .
+
+
+ a epo:Purpose;
+ epo:hasContractNatureType ;
+ epo:hasMainClassification .
+
+
+ a epo:PurchaseContract;
+ epo:isWithinFrameworkAgreement true .
+
+
+ a epo:ResultNotice;
+ epo:announcesContract ,
+ ;
+ epo:announcesRole ,
+ ,
+ ,
+ ,
+ ;
+ epo:announcesTender ;
+ epo:hasDispatchDate "2020-12-31";
+ epo:refersToLot ;
+ epo:refersToPrevious ;
+ epo:refersToProcedure .
+
+
+ a epo:ReviewProcedureInformationProvider;
+ epo:playedBy .
+
+
+ a locn:Address;
+ locn:adminUnitL2 ;
+ locn:postCode "02-676";
+ locn:postName "Warszawa";
+ locn:thoroughfare "ul. Postępu 17a" .
+
+
+ a epo:ContactPoint;
+ epo:hasFax "+48 224587800";
+ cccev:email "odwolania@uzp.gov.pl";
+ cccev:telephone "+48 224587801" .
+
+
+ a org:Organization;
+ epo:hasDeliveryGateway ;
+ epo:hasID ;
+ epo:hasName "Krajowa Izba Odwoławcza"@pl;
+ epo:hasPrimaryContactPoint ;
+ epo:hasRegisteredAddress .
+
+
+ a epo:Channel;
+ epo:hasURL "https://www.uzp.gov.pl" .
+
+
+ a epo:Identifier;
+ epo:hasIdentifierValue "Krajowa Izba Odwoławcza" .
+
+
+ a epo:ReviewTerm;
+ epo:hasReviewDeadlineInformation """
+ 1. Wykonawcy, a także innemu podmiotowi, jeżeli ma lub miał interes w uzyskaniu zamówienia oraz
+ poniósł lub może ponieść szkodę w wyniku naruszenia przez Zamawiającego przepisów ustawy,
+ przysługują środki ochrony prawnej określone w dziale VI ustawy.
+
+ 2. Od niezgodnej z przepisami ustawy czynności Zamawiającego podjętej w postępowaniu o udzielenie
+ zamówienia lub zaniechania czynności, do której Zamawiający jest zobowiązany na podstawie
+ ustawy, przysługuje odwołanie.
+
+ 3. Na orzeczenie KIO stronom oraz uczestnikom postępowania odwoławczego przysługuje skarga do
+ sądu.
+
+ """ .
+
+
+ a epo:Reviewer;
+ epo:playedBy .
+
+
+ a epo:ContactPoint;
+ epo:hasFax "+48 224587800";
+ cccev:email "odwolania@uzp.gov.pl";
+ cccev:telephone "+48 224587801" .
+
+
+ a org:Organization;
+ epo:hasDeliveryGateway ;
+ epo:hasID ;
+ epo:hasName "Krajowa Izba Odwoławcza"@pl;
+ epo:hasPrimaryContactPoint ;
+ epo:hasRegisteredAddress .
+
+
+ a locn:Address;
+ locn:adminUnitL2 ;
+ locn:postCode "02-676";
+ locn:postName "Warszawa";
+ locn:thoroughfare "ul. Postępu 17a" .
+
+
+ a epo:Channel;
+ epo:hasURL "http://uzp.gov.pl" .
+
+
+ a epo:Identifier;
+ epo:hasIdentifierValue "Krajowa Izba Odwoławcza" .
+
+
+ a epo:SubmissionStatisticalInformation;
+ epo:concernsSubmissionsForLot ;
+ epo:hasEEAReceivedTenders "0";
+ epo:hasElectronicTenders "2";
+ epo:hasLowestReceivedTenderValue ;
+ epo:hasReceivedNonEEATenders "0";
+ epo:hasReceivedSMETenders "0";
+ epo:hasReceivedTenders "2" .
+
+
+ a epo:Tender;
+ epo:isSubmittedForLot .
+
+
+ a epo:TenderAwardOutcome;
+ epo:awardsLotToWinner ;
+ epo:describesTender .
+
+
+ a epo:Tenderer;
+ epo:playedBy .
+
+
+ a epo:Winner;
+ epo:playedBy ;
+ epo:playedByBusiness .
diff --git a/tests/test_data/notice_validator/test_repository/test_sparql_package/output/notice/test_suite_report/xpath_coverage_validation.json b/tests/test_data/notice_validator/test_repository/test_sparql_package/output/notice/test_suite_report/xpath_coverage_validation.json
new file mode 100644
index 000000000..9de4ba4f9
--- /dev/null
+++ b/tests/test_data/notice_validator/test_repository/test_sparql_package/output/notice/test_suite_report/xpath_coverage_validation.json
@@ -0,0 +1,1858 @@
+{
+ "object_data": "XPATHCoverageValidationReport",
+ "created": "2022-08-18T16:55:58.471845",
+ "mapping_suite_identifier": "package_F03",
+ "validation_result": {
+ "notice_id": [
+ "348503-2021"
+ ],
+ "xpath_assertions": [
+ {
+ "standard_form_field_id": "I.4",
+ "eform_bt_id": "BT-11",
+ "title": "Buyer Legal Type",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/CA_TYPE",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "IV.1.8",
+ "eform_bt_id": "BT-115",
+ "title": "GPA Coverage",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/CONTRACT_COVERED_GPA",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "I.1.12.2",
+ "eform_bt_id": "BT-508",
+ "title": "Buyer Profile URL",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL/URL_BUYER",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "VI.4.2.6",
+ "eform_bt_id": "BT-506",
+ "title": "Organisation Contact Email Address",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_MEDIATION_BODY/E_MAIL",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "II.2.5.2.1",
+ "eform_bt_id": "BT-734",
+ "title": "Award Criterion name",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/AC/AC_COST/AC_CRITERION",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "II.2.5.3",
+ "eform_bt_id": "BT-539",
+ "title": "Award Criterion Type",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/AC/AC_PRICE",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "D1.3.1",
+ "eform_bt_id": "BT-135",
+ "title": "Direct Award Justification Text",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_JUSTIFICATION",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "V.2.3.10",
+ "eform_bt_id": "BT-505",
+ "title": "Organisation Internet Address",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/ADDRESS_CONTRACTOR/URL",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "II.2.5.1.1",
+ "eform_bt_id": "BT-734",
+ "title": "Award Criterion name",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/AC/AC_QUALITY/AC_CRITERION",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "V.1.1.1",
+ "eform_bt_id": "BT-144",
+ "title": "Not Awarded Reason",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/NO_AWARDED_CONTRACT/PROCUREMENT_UNSUCCESSFUL",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "V.2.5.3",
+ "eform_bt_id": "BT-553",
+ "title": "Subcontracting Value ",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/VAL_SUBCONTRACTING",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "V.2.3.3",
+ "eform_bt_id": "BT-510",
+ "title": "Organisation Street",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/ADDRESS_CONTRACTOR/ADDRESS",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "IV.1.1.5",
+ "eform_bt_id": "BT-105",
+ "title": "Procedure Type",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_INNOVATION_PARTNERSHIP",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "V.2.4.3",
+ "eform_bt_id": "BT-710",
+ "title": "Tender Value Lowest",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/VALUES/VAL_RANGE_TOTAL/LOW",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "VI.4.1.9",
+ "eform_bt_id": "BT-739",
+ "title": "Organisation Contact Fax",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_BODY/FAX",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "I.1.6",
+ "eform_bt_id": "BT-512",
+ "title": "Place Performance Post Code",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/POSTAL_CODE",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "I.1.5",
+ "eform_bt_id": "BT-507",
+ "title": "Organisation Country Subdivision",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL/n2016:NUTS/@CODE",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "V.2.3.8",
+ "eform_bt_id": "BT-506",
+ "title": "Organisation Contact Email Address",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/ADDRESS_CONTRACTOR/E_MAIL",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "II.1.7",
+ "eform_bt_id": null,
+ "title": null,
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "IV.1.6.1",
+ "eform_bt_id": "BT-767",
+ "title": "Electronic Auction",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/EAUCTION_USED",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "VI.4.1.8",
+ "eform_bt_id": "BT-505",
+ "title": "Organisation Internet Address",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_BODY/URL",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "V.2.3.1",
+ "eform_bt_id": "BT-500",
+ "title": "Organisation Name",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/ADDRESS_CONTRACTOR/OFFICIALNAME",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "V.0.3",
+ "eform_bt_id": "BT-13713",
+ "title": "Result Lot Identifier",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/LOT_NO",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "II.2.14",
+ "eform_bt_id": "BT-300",
+ "title": "Additional Information",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/INFO_ADD",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "V.2.2.5",
+ "eform_bt_id": null,
+ "title": null,
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/TENDERS/NB_TENDERS_RECEIVED_EMEANS",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "I.1.10",
+ "eform_bt_id": "BT-506",
+ "title": "Organisation Contact Email Address",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL/E_MAIL",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "I.1.9",
+ "eform_bt_id": "BT-503",
+ "title": "Organisation Contact Telephone Number",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL/PHONE",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "VI.4.2.5",
+ "eform_bt_id": "BT-514",
+ "title": "Organisation Country Code",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_MEDIATION_BODY/COUNTRY",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "IV.1.1.2",
+ "eform_bt_id": "BT-105",
+ "title": "Procedure Type",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_RESTRICTED",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "VI.4.4.8",
+ "eform_bt_id": "BT-505",
+ "title": "Organisation Internet Address",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_INFO/URL",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "I.1",
+ "eform_bt_id": null,
+ "title": null,
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "V.2.4.4",
+ "eform_bt_id": "BT-711",
+ "title": "Tender Value Highest",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/VALUES/VAL_RANGE_TOTAL/HIGH",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "II.2.5.1",
+ "eform_bt_id": "BT-539",
+ "title": "Award Criterion Type",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/AC/AC_QUALITY",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "D1.1.9.2",
+ "eform_bt_id": "BT-136",
+ "title": "Direct Award Justification Code",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_FROM_LIQUIDATOR_CREDITOR",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "V.2.2.2",
+ "eform_bt_id": null,
+ "title": null,
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/TENDERS/NB_TENDERS_RECEIVED_SME",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "VI.4.2.2",
+ "eform_bt_id": "BT-510",
+ "title": "Organisation Street",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_MEDIATION_BODY/ADDRESS",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "II.1.4",
+ "eform_bt_id": "BT-24",
+ "title": "Description",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/SHORT_DESCR",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "I.1.6",
+ "eform_bt_id": "BT-512",
+ "title": "Place Performance Post Code",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL/POSTAL_CODE",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "II.2.11.1",
+ "eform_bt_id": "BT-53",
+ "title": "Options",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/OPTIONS",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "V.2.4.2",
+ "eform_bt_id": "BT-720",
+ "title": "Tender Value",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/VALUES/VAL_TOTAL",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "VI.4.1.5",
+ "eform_bt_id": "BT-514",
+ "title": "Organisation Country Code",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_BODY/COUNTRY",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "VI.4.2.7",
+ "eform_bt_id": "BT-503",
+ "title": "Organisation Contact Telephone Number",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_MEDIATION_BODY/PHONE",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "I.1.4",
+ "eform_bt_id": "BT-513",
+ "title": "Organisation City",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL/TOWN",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "II.2.2.1",
+ "eform_bt_id": "BT-262",
+ "title": "Main Classification Code",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/CPV_ADDITIONAL/CPV_CODE/@CODE",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "VI.4.3",
+ "eform_bt_id": "BT-99",
+ "title": "Review Deadline Description",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/REVIEW_PROCEDURE",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "V.2.3.5",
+ "eform_bt_id": "BT-507",
+ "title": "Organisation Country Subdivision",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/ADDRESS_CONTRACTOR/n2016:NUTS/@CODE",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "II.1.7.4",
+ "eform_bt_id": null,
+ "title": null,
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/VAL_TOTAL/@CURRENCY",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "V.2.5.6",
+ "eform_bt_id": "BT-554",
+ "title": "Subcontracting Description",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/INFO_ADD_SUBCONTRACTING",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "I.1.3",
+ "eform_bt_id": "BT-510",
+ "title": "Organisation Street",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL/ADDRESS",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "II.1.1.1",
+ "eform_bt_id": "BT-22",
+ "title": "Internal Identifier",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/REFERENCE_NUMBER",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "VI.4.4.5",
+ "eform_bt_id": "BT-514",
+ "title": "Organisation Country Code",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_INFO/COUNTRY",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "IV.2.9.1",
+ "eform_bt_id": "BT-756",
+ "title": "PIN Competition Termination",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/TERMINATION_PIN",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "II.2.5.2.2",
+ "eform_bt_id": "BT-543",
+ "title": "Award Criterion complicated",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/AC/AC_COST/AC_WEIGHTING",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "I.5",
+ "eform_bt_id": "BT-10",
+ "title": "Activity Authority",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/CA_ACTIVITY",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "II.1.7.2",
+ "eform_bt_id": "BT-710",
+ "title": "Tender Value Lowest",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/VAL_RANGE_TOTAL/LOW",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "II.2.11.2",
+ "eform_bt_id": "BT-54",
+ "title": "Options Description",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/OPTIONS_DESCR",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "II.1.2.1",
+ "eform_bt_id": "BT-263",
+ "title": "Additional Classification Codes",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/CPV_MAIN/CPV_SUPPLEMENTARY_CODE/@CODE",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "II.1.3",
+ "eform_bt_id": "BT-23",
+ "title": "Main Nature",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/TYPE_CONTRACT/@CTYPE",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "I.0",
+ "eform_bt_id": null,
+ "title": null,
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "VI.4.1.6",
+ "eform_bt_id": "BT-506",
+ "title": "Organisation Contact Email Address",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_BODY/E_MAIL",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "I.1.10",
+ "eform_bt_id": "BT-506",
+ "title": "Organisation Contact Email Address",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/E_MAIL",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "I.1.5",
+ "eform_bt_id": "BT-507",
+ "title": "Organisation Country Subdivision",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/n2016:NUTS/@CODE",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "D1.1.5",
+ "eform_bt_id": "BT-136",
+ "title": "Direct Award Justification Code",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_ADD_DELIVERIES_ORDERED",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "I.1.4",
+ "eform_bt_id": "BT-513",
+ "title": "Organisation City",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/TOWN",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "IV.1.1.3",
+ "eform_bt_id": "BT-105",
+ "title": "Procedure Type",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_COMPETITIVE_NEGOTIATION",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "D1.1.8",
+ "eform_bt_id": "BT-136",
+ "title": "Direct Award Justification Code",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_COMMODITY_MARKET",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "VI.4.4.6",
+ "eform_bt_id": "BT-506",
+ "title": "Organisation Contact Email Address",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_INFO/E_MAIL",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "VI.5",
+ "eform_bt_id": "BT-05",
+ "title": "Notice Dispatch Date",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/DATE_DISPATCH_NOTICE",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "MetaData",
+ "eform_bt_id": null,
+ "title": null,
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/LEGAL_BASIS/@VALUE",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "II.2.5.1.2",
+ "eform_bt_id": "BT-543",
+ "title": "Award Criterion complicated",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/AC/AC_QUALITY/AC_WEIGHTING",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "IV.2.8.1",
+ "eform_bt_id": "BT-119",
+ "title": "Dynamic Purchasing System Termination",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/TERMINATION_DPS",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "I.1.12.1",
+ "eform_bt_id": "BT-505",
+ "title": "Organisation Internet Address",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/URL_GENERAL",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "D1.1.3.2",
+ "eform_bt_id": "BT-136",
+ "title": "Direct Award Justification Code",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_ARTISTIC",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "IV.1.1.1",
+ "eform_bt_id": "BT-105",
+ "title": "Procedure Type",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_OPEN",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "I.1.2",
+ "eform_bt_id": "BT-501",
+ "title": "Organisation Identifier",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/NATIONALID",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "I.1.1",
+ "eform_bt_id": "BT-500",
+ "title": "Organisation Name",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL/OFFICIALNAME",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "I.1.2",
+ "eform_bt_id": "BT-501",
+ "title": "Organisation Identifier",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL/NATIONALID",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "V.2.4.3.1",
+ "eform_bt_id": "no direct match",
+ "title": null,
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/VALUES/VAL_RANGE_TOTAL/@CURRENCY",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "VI.4.1",
+ "eform_bt_id": "---",
+ "title": null,
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "VI.4.2.8",
+ "eform_bt_id": "BT-505",
+ "title": "Organisation Internet Address",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_MEDIATION_BODY/URL",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "Section V",
+ "eform_bt_id": null,
+ "title": null,
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "D1.1.3.3",
+ "eform_bt_id": "BT-136",
+ "title": "Direct Award Justification Code",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_PROTECT_RIGHTS",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "II.2.13.2",
+ "eform_bt_id": "BT-5011",
+ "title": "Contract EU Funds Identifier",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/EU_PROGR_RELATED/P",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "II.2.4",
+ "eform_bt_id": "BT-24",
+ "title": "Description",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/SHORT_DESCR",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "V.2.2.3",
+ "eform_bt_id": null,
+ "title": null,
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/TENDERS/NB_TENDERS_RECEIVED_OTHER_EU",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "I.1.12.1",
+ "eform_bt_id": "BT-505",
+ "title": "Organisation Internet Address",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL/URL_GENERAL",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "I.1.8",
+ "eform_bt_id": "BT-502",
+ "title": "Organisation Contact Point",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/CONTACT_POINT",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "IV.1.1.6",
+ "eform_bt_id": "BT-105",
+ "title": "Procedure Type",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "VI.4.2.4",
+ "eform_bt_id": "BT-512",
+ "title": "Organisation Post Code",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_MEDIATION_BODY/POSTAL_CODE",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "V.1.1.2",
+ "eform_bt_id": "BT-144",
+ "title": "Not Awarded Reason",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/NO_AWARDED_CONTRACT/PROCUREMENT_DISCONTINUED",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "II.1.1",
+ "eform_bt_id": "BT-21",
+ "title": "Title",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/TITLE",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "V.1.1.3",
+ "eform_bt_id": "no match",
+ "title": null,
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/NO_AWARDED_CONTRACT/PROCUREMENT_DISCONTINUED/NO_DOC_EXT/@PUBLICATION",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "VI.4.1.7",
+ "eform_bt_id": "BT-503",
+ "title": "Organisation Contact Telephone Number",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_BODY/PHONE",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "V.0.6",
+ "eform_bt_id": "BT-142",
+ "title": "Winner Chosen",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "VI.4.4.4",
+ "eform_bt_id": "BT-512",
+ "title": "Organisation Post Code",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_INFO/POSTAL_CODE",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "VI.4.2.9",
+ "eform_bt_id": "BT-739",
+ "title": "Organisation Contact Fax",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_MEDIATION_BODY/FAX",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "V.2.3.11",
+ "eform_bt_id": "BT-739",
+ "title": "Organisation Contact Fax",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/ADDRESS_CONTRACTOR/FAX",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "II.1.7.1",
+ "eform_bt_id": "BT-161",
+ "title": "Estimated Value",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/VAL_TOTAL",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "V.2.5.1",
+ "eform_bt_id": "BT-773",
+ "title": "Subcontracting",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/LIKELY_SUBCONTRACTED",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "V.2.4.1",
+ "eform_bt_id": "BT-27",
+ "title": "Estimated Value",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/VALUES/VAL_ESTIMATED_TOTAL",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "IV.1.1.1.1",
+ "eform_bt_id": "BT-106",
+ "title": "Procedure Accelerated",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/ACCELERATED_PROC",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "VI.3",
+ "eform_bt_id": "BT-300",
+ "title": "Additional Information",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/INFO_ADD",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "VI.4.1.4",
+ "eform_bt_id": "BT-512",
+ "title": "Organisation Post Code",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_BODY/POSTAL_CODE",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "VI.4.2.1",
+ "eform_bt_id": "BT-500",
+ "title": "Organisation Name",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_MEDIATION_BODY/OFFICIALNAME",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "VI.4.4.2",
+ "eform_bt_id": "BT-510",
+ "title": "Organisation Street",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_INFO/ADDRESS",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "D1.1.1.1",
+ "eform_bt_id": "BT-1252",
+ "title": "Direct Award Justification Previous Procedure Identifier",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_PROC_OPEN",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "VI.4.2.3",
+ "eform_bt_id": "BT-513",
+ "title": "Organisation City",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_MEDIATION_BODY/TOWN",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "VI.4.1.2",
+ "eform_bt_id": "BT-510",
+ "title": "Organisation Street",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_BODY/ADDRESS",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "V.0.2",
+ "eform_bt_id": "BT-150",
+ "title": "Contract Identifier",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/CONTRACT_NO",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "D1.2.1",
+ "eform_bt_id": "no match",
+ "title": null,
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_OUTSIDE_SCOPE",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "I.2.2",
+ "eform_bt_id": null,
+ "title": null,
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/CENTRAL_PURCHASING",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "I.1.11",
+ "eform_bt_id": "BT-739",
+ "title": "Organisation Contact Fax",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/FAX",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "I.1.1",
+ "eform_bt_id": "BT-500",
+ "title": "Organisation Name",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/OFFICIALNAME",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "D1.1.6",
+ "eform_bt_id": "BT-136",
+ "title": "Direct Award Justification Code",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_REPETITION_EXISTING",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "VI.4.4.7",
+ "eform_bt_id": "BT-503",
+ "title": "Organisation Contact Telephone Number",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_INFO/PHONE",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "V.2.3.9",
+ "eform_bt_id": "BT-503",
+ "title": "Organisation Contact Telephone Number",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/ADDRESS_CONTRACTOR/PHONE",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "D1.1",
+ "eform_bt_id": "---",
+ "title": null,
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "V.2.2.6",
+ "eform_bt_id": "BT-768",
+ "title": null,
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/AWARDED_TO_GROUP",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "II.2.1.1",
+ "eform_bt_id": "BT-137",
+ "title": "Purpose Lot Identifier",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/LOT_NO",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "I.1.3",
+ "eform_bt_id": "BT-510",
+ "title": "Organisation Street",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/ADDRESS",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "VI.4.1.1",
+ "eform_bt_id": "BT-500",
+ "title": "Organisation Name",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_BODY/OFFICIALNAME",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "IV.1.3.1",
+ "eform_bt_id": "BT-765",
+ "title": "Framework Agreement",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/FRAMEWORK",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "VI.4.4.1",
+ "eform_bt_id": "BT-500",
+ "title": "Organisation Name",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_INFO/OFFICIALNAME",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "V.2.2.1",
+ "eform_bt_id": "BT-759",
+ "title": "Received Submissions Count",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/TENDERS/NB_TENDERS_RECEIVED",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "V.2.2.4",
+ "eform_bt_id": null,
+ "title": null,
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/TENDERS/NB_TENDERS_RECEIVED_NON_EU",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "IV.1.1.1.2",
+ "eform_bt_id": "BT-1351",
+ "title": "Procedure Accelerated Justification",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/ACCELERATED_PROC/P",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "I.2.1",
+ "eform_bt_id": null,
+ "title": null,
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/JOINT_PROCUREMENT_INVOLVED",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "II.2.3.2",
+ "eform_bt_id": "BT-728",
+ "title": "Place Performance Additional Information",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/MAIN_SITE",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "V.2.3.4",
+ "eform_bt_id": "BT-513",
+ "title": "Organisation City",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/ADDRESS_CONTRACTOR/TOWN",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "I.1.9",
+ "eform_bt_id": "BT-503",
+ "title": "Organisation Contact Telephone Number",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/PHONE",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "D1.1.3.1",
+ "eform_bt_id": "BT-136",
+ "title": "Direct Award Justification Code",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_TECHNICAL",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "II.1.2",
+ "eform_bt_id": "BT-262",
+ "title": "Main Classification Code",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/CPV_MAIN/CPV_CODE/@CODE",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "II.2.5.2",
+ "eform_bt_id": "BT-539",
+ "title": "Award Criterion Type",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/AC/AC_COST",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "D1.1.7",
+ "eform_bt_id": "BT-136",
+ "title": "Direct Award Justification Code",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_CONTRACT_AWARDED_DESIGN_CONTEST",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "V.2.3.7",
+ "eform_bt_id": "BT-514",
+ "title": "Organisation Country Code",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/ADDRESS_CONTRACTOR/COUNTRY",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "I.1.11",
+ "eform_bt_id": "BT-739",
+ "title": "Organisation Contact Fax",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL/FAX",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "II.1.6.1",
+ "eform_bt_id": "see BT-557 | BT-157",
+ "title": null,
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/LOT_DIVISION",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "Section IV",
+ "eform_bt_id": null,
+ "title": null,
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "VI.4.4.9",
+ "eform_bt_id": "BT-739",
+ "title": "Organisation Contact Fax",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_INFO/FAX",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "IV.1.1.4",
+ "eform_bt_id": "BT-105",
+ "title": "Procedure Type",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_COMPETITIVE_DIALOGUE",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "I.2.1.1",
+ "eform_bt_id": "BT-09",
+ "title": "Cross Border Law",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/PROCUREMENT_LAW",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "II.2.13.1",
+ "eform_bt_id": "BT-60",
+ "title": "EU Funds",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/EU_PROGR_RELATED",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "II.2.1",
+ "eform_bt_id": "BT-21",
+ "title": "Title",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/TITLE",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "VI.4.4.3",
+ "eform_bt_id": "BT-513",
+ "title": "Organisation City",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_INFO/TOWN",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "D1.1.1.2",
+ "eform_bt_id": "BT-1252",
+ "title": "Direct Award Justification Previous Procedure Identifier",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_PROC_RESTRICTED",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "V.2.3.6",
+ "eform_bt_id": "BT-512",
+ "title": "Organisation Post Code",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/ADDRESS_CONTRACTOR/POSTAL_CODE",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "I.1.12.2",
+ "eform_bt_id": "BT-508",
+ "title": "Buyer Profile URL",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/URL_BUYER",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "V.2.1",
+ "eform_bt_id": "BT-145",
+ "title": "Contract Conclusion Date",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/DATE_CONCLUSION_CONTRACT",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "VI.4.1.3",
+ "eform_bt_id": "BT-513",
+ "title": "Organisation City",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_BODY/TOWN",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "II.2.5.3.1",
+ "eform_bt_id": "BT-543",
+ "title": "Award Criterion complicated",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/AC/AC_PRICE/AC_CRITERION",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "IV.2.1",
+ "eform_bt_id": "BT-125",
+ "title": "Previous Planning Identifier",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/NOTICE_NUMBER_OJ",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "I.1.7",
+ "eform_bt_id": "BT-514",
+ "title": "Organisation Country Code",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/COUNTRY",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "V.2.5.4",
+ "eform_bt_id": "no direct match",
+ "title": null,
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/VAL_SUBCONTRACTING/@CURRENCY",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "V.2.3.2",
+ "eform_bt_id": "BT-501",
+ "title": "Organisation Identifier",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/ADDRESS_CONTRACTOR/NATIONALID",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "I.1.8",
+ "eform_bt_id": "BT-502",
+ "title": "Organisation Contact Point",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL/CONTACT_POINT",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "D1.1.2",
+ "eform_bt_id": "BT-136",
+ "title": "Direct Award Justification Code",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_MANUF_FOR_RESEARCH",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "II.1.7.3",
+ "eform_bt_id": "BT-711",
+ "title": "Tender Value Highest",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/VAL_RANGE_TOTAL/HIGH",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "V.0.4",
+ "eform_bt_id": "BT-721",
+ "title": "Contract Title",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/TITLE",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "V.2.5.5",
+ "eform_bt_id": "BT-555",
+ "title": "Subcontracting Percentage",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/PCT_SUBCONTRACTING",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "IV.1.3.2",
+ "eform_bt_id": "BT-766",
+ "title": "Dynamic Purchasing System",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/DPS",
+ "count": 1,
+ "notice_hit": {
+ "348503-2021": 1
+ },
+ "query_result": true
+ },
+ {
+ "standard_form_field_id": "V.2.3.12",
+ "eform_bt_id": "BT-165",
+ "title": "Winner Size",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/SME",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "II.2.3.1",
+ "eform_bt_id": "BT-5071",
+ "title": "Place Performance Country Subdivision",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/n2016:NUTS/@CODE",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "V.0.6",
+ "eform_bt_id": "BT-142",
+ "title": "Winner Chosen",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/NO_AWARDED_CONTRACT",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "II.2.2.2",
+ "eform_bt_id": "BT-263",
+ "title": "Additional Classification Codes",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/CPV_ADDITIONAL/CPV_SUPPLEMENTARY_CODE/@CODE",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "I.1.7",
+ "eform_bt_id": "BT-514",
+ "title": "Organisation Country Code",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL/COUNTRY",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "D1.1.4",
+ "eform_bt_id": "BT-136",
+ "title": "Direct Award Justification Code",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_EXTREME_URGENCY",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ },
+ {
+ "standard_form_field_id": "D1.1.9.1",
+ "eform_bt_id": "BT-136",
+ "title": "Direct Award Justification Code",
+ "xpath": "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_FROM_WINDING_PROVIDER",
+ "count": 0,
+ "notice_hit": {},
+ "query_result": false
+ }
+ ],
+ "xpath_covered": [
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/CA_TYPE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/TENDERS/NB_TENDERS_RECEIVED",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/CONTRACT_COVERED_GPA",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/VALUES/VAL_TOTAL",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_BODY/COUNTRY",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/SHORT_DESCR",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/CPV_ADDITIONAL/CPV_CODE/@CODE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/REVIEW_PROCEDURE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/AC/AC_PRICE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/VAL_TOTAL/@CURRENCY",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/TITLE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/MAIN_SITE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/AC/AC_QUALITY/AC_CRITERION",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/TERMINATION_PIN",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/ADDRESS_CONTRACTOR/TOWN",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/PHONE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/CA_ACTIVITY",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/CPV_MAIN/CPV_CODE/@CODE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/ADDRESS_CONTRACTOR/ADDRESS",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/TYPE_CONTRACT/@CTYPE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/VAL_TOTAL",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/LIKELY_SUBCONTRACTED",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/VALUES/VAL_ESTIMATED_TOTAL",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/ADDRESS_CONTRACTOR/COUNTRY",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/E_MAIL",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_BODY/POSTAL_CODE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/POSTAL_CODE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/TOWN",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/EAUCTION_USED",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_BODY/URL",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/ADDRESS_CONTRACTOR/POSTAL_CODE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/ADDRESS_CONTRACTOR/OFFICIALNAME",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_BODY/ADDRESS",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/CONTRACT_NO",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/DATE_CONCLUSION_CONTRACT",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_BODY/TOWN",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/DATE_DISPATCH_NOTICE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/FAX",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/LEGAL_BASIS/@VALUE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/INFO_ADD",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/TENDERS/NB_TENDERS_RECEIVED_EMEANS",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/AC/AC_QUALITY/AC_WEIGHTING",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/OFFICIALNAME",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/TERMINATION_DPS",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/NOTICE_NUMBER_OJ",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/COUNTRY",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_RESTRICTED",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/URL_GENERAL",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/ADDRESS",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_BODY/OFFICIALNAME",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/TITLE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/PCT_SUBCONTRACTING",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/DPS",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/AC/AC_QUALITY",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/SHORT_DESCR"
+ ],
+ "xpath_not_covered": [
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/MAIN_SITE/P",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/VALUES/VAL_TOTAL/@CURRENCY",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/TITLE/P",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/CPV_MAIN/CPV_CODE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/@ITEM",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/NO_OPTIONS",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/LEGAL_BASIS",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/TYPE_CONTRACT",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/@CATEGORY",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/VALUES",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/@FORM",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/ADDRESS_CONTRACTOR/n2021:NUTS/@CODE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/CPV_ADDITIONAL",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/CA_TYPE/@VALUE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/NO_SME",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/CPV_MAIN",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_BODY",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/REVIEW_PROCEDURE/P",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/NO_AWARDED_TO_GROUP",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/SHORT_DESCR/P",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/TENDERS",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_BODY/COUNTRY/@VALUE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/AC",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/n2021:NUTS/@CODE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/ADDRESS_CONTRACTOR/COUNTRY/@VALUE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/n2021:NUTS/@CODE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/n2021:NUTS",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/TITLE/P",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/@LG",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/INFO_ADD/P",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/SHORT_DESCR/P",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/AC/AC_PRICE/AC_WEIGHTING",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/n2021:NUTS",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/CPV_ADDITIONAL/CPV_CODE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/ADDRESS_CONTRACTOR",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/ADDRESS_CONTRACTOR/n2021:NUTS",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/NO_EU_PROGR_RELATED",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/VALUES/VAL_ESTIMATED_TOTAL/@CURRENCY",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/@ITEM",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/NO_LOT_DIVISION",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/CA_ACTIVITY/@VALUE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/COUNTRY/@VALUE"
+ ],
+ "xpath_extra": [
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL/URL_BUYER",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_MEDIATION_BODY/E_MAIL",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/AC/AC_COST/AC_CRITERION",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_JUSTIFICATION",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/ADDRESS_CONTRACTOR/URL",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/NO_AWARDED_CONTRACT/PROCUREMENT_UNSUCCESSFUL",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/VAL_SUBCONTRACTING",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_INNOVATION_PARTNERSHIP",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_BODY/FAX",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/VALUES/VAL_RANGE_TOTAL/LOW",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL/n2016:NUTS/@CODE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/ADDRESS_CONTRACTOR/E_MAIL",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/LOT_NO",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL/E_MAIL",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_MEDIATION_BODY/COUNTRY",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL/PHONE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_INFO/URL",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/VALUES/VAL_RANGE_TOTAL/HIGH",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL/COUNTRY",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_FROM_LIQUIDATOR_CREDITOR",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/TENDERS/NB_TENDERS_RECEIVED_SME",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_MEDIATION_BODY/ADDRESS",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL/POSTAL_CODE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/OPTIONS",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_MEDIATION_BODY/PHONE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL/TOWN",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/ADDRESS_CONTRACTOR/n2016:NUTS/@CODE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/INFO_ADD_SUBCONTRACTING",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL/ADDRESS",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/REFERENCE_NUMBER",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_INFO/COUNTRY",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/AC/AC_COST/AC_WEIGHTING",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/VAL_RANGE_TOTAL/LOW",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/OPTIONS_DESCR",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/CPV_MAIN/CPV_SUPPLEMENTARY_CODE/@CODE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_BODY/E_MAIL",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/n2016:NUTS/@CODE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_ADD_DELIVERIES_ORDERED",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_COMPETITIVE_NEGOTIATION",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_COMMODITY_MARKET",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_INFO/E_MAIL",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_ARTISTIC",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_OPEN",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/NATIONALID",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL/OFFICIALNAME",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL/NATIONALID",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/VALUES/VAL_RANGE_TOTAL/@CURRENCY",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_MEDIATION_BODY/URL",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_PROTECT_RIGHTS",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/EU_PROGR_RELATED/P",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/TENDERS/NB_TENDERS_RECEIVED_OTHER_EU",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL/URL_GENERAL",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/CONTACT_POINT",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_MEDIATION_BODY/POSTAL_CODE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/NO_AWARDED_CONTRACT/PROCUREMENT_DISCONTINUED",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/NO_AWARDED_CONTRACT/PROCUREMENT_DISCONTINUED/NO_DOC_EXT/@PUBLICATION",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_BODY/PHONE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_INFO/POSTAL_CODE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_MEDIATION_BODY/FAX",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/ADDRESS_CONTRACTOR/FAX",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/INFO_ADD",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/ACCELERATED_PROC",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_MEDIATION_BODY/OFFICIALNAME",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_INFO/ADDRESS",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_PROC_OPEN",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_MEDIATION_BODY/TOWN",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/CENTRAL_PURCHASING",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_REPETITION_EXISTING",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_INFO/PHONE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/ADDRESS_CONTRACTOR/PHONE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/AWARDED_TO_GROUP",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/LOT_NO",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/FRAMEWORK",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_INFO/OFFICIALNAME",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/TENDERS/NB_TENDERS_RECEIVED_NON_EU",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/ACCELERATED_PROC/P",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/JOINT_PROCUREMENT_INVOLVED",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_TECHNICAL",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_CONTRACT_AWARDED_DESIGN_CONTEST",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/AC/AC_COST",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL/FAX",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/LOT_DIVISION",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_INFO/FAX",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_COMPETITIVE_DIALOGUE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/PROCUREMENT_LAW",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/EU_PROGR_RELATED",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/TITLE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/COMPLEMENTARY_INFO/ADDRESS_REVIEW_INFO/TOWN",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_PROC_RESTRICTED",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/URL_BUYER",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/AC/AC_PRICE/AC_CRITERION",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/VAL_SUBCONTRACTING/@CURRENCY",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/ADDRESS_CONTRACTOR/NATIONALID",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY_ADDITIONAL/CONTACT_POINT",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_MANUF_FOR_RESEARCH",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/VAL_RANGE_TOTAL/HIGH",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/AWARDED_CONTRACT/CONTRACTORS/CONTRACTOR/SME",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/n2016:NUTS/@CODE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/AWARD_CONTRACT/NO_AWARDED_CONTRACT",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/OBJECT_CONTRACT/OBJECT_DESCR/CPV_ADDITIONAL/CPV_SUPPLEMENTARY_CODE/@CODE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_OUTSIDE_SCOPE",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_EXTREME_URGENCY",
+ "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL/D_ACCORDANCE_ARTICLE/D_FROM_WINDING_PROVIDER"
+ ],
+ "coverage": 0.5700934579439252,
+ "conceptual_coverage": 0.3652694610778443
+ }
+}
\ No newline at end of file
diff --git a/tests/test_data/notice_validator/test_repository/test_sparql_package/test_data/batch_N1/notice.xml b/tests/test_data/notice_validator/test_repository/test_sparql_package/test_data/batch_N1/notice.xml
new file mode 100644
index 000000000..ec8a072cf
--- /dev/null
+++ b/tests/test_data/notice_validator/test_repository/test_sparql_package/test_data/batch_N1/notice.xml
@@ -0,0 +1,1067 @@
+
+
+
+ 18-432813-001
+ 20190104
+ EN CS DA DE ET EL ES FR IT LV LT HR HU MT NL PL PT SK SL FI SV RO GA BG
+ From Convertor
+
+
+
+
+
+
+
+
+
+
+ S
+ 189
+ 20181002
+
+
+ 2018/S 189-426046
+
+ http://ted.europa.eu/udl?uri=TED:NOTICE:426046-2018:TEXT:EN:HTML
+ http://ted.europa.eu/udl?uri=TED:NOTICE:426046-2018:TEXT:CS:HTML
+ http://ted.europa.eu/udl?uri=TED:NOTICE:426046-2018:TEXT:DA:HTML
+ http://ted.europa.eu/udl?uri=TED:NOTICE:426046-2018:TEXT:DE:HTML
+ http://ted.europa.eu/udl?uri=TED:NOTICE:426046-2018:TEXT:ET:HTML
+ http://ted.europa.eu/udl?uri=TED:NOTICE:426046-2018:TEXT:EL:HTML
+ http://ted.europa.eu/udl?uri=TED:NOTICE:426046-2018:TEXT:ES:HTML
+ http://ted.europa.eu/udl?uri=TED:NOTICE:426046-2018:TEXT:FR:HTML
+ http://ted.europa.eu/udl?uri=TED:NOTICE:426046-2018:TEXT:IT:HTML
+ http://ted.europa.eu/udl?uri=TED:NOTICE:426046-2018:TEXT:LV:HTML
+ http://ted.europa.eu/udl?uri=TED:NOTICE:426046-2018:TEXT:LT:HTML
+ http://ted.europa.eu/udl?uri=TED:NOTICE:426046-2018:TEXT:HR:HTML
+ http://ted.europa.eu/udl?uri=TED:NOTICE:426046-2018:TEXT:HU:HTML
+ http://ted.europa.eu/udl?uri=TED:NOTICE:426046-2018:TEXT:MT:HTML
+ http://ted.europa.eu/udl?uri=TED:NOTICE:426046-2018:TEXT:NL:HTML
+ http://ted.europa.eu/udl?uri=TED:NOTICE:426046-2018:TEXT:PL:HTML
+ http://ted.europa.eu/udl?uri=TED:NOTICE:426046-2018:TEXT:PT:HTML
+ http://ted.europa.eu/udl?uri=TED:NOTICE:426046-2018:TEXT:SK:HTML
+ http://ted.europa.eu/udl?uri=TED:NOTICE:426046-2018:TEXT:SL:HTML
+ http://ted.europa.eu/udl?uri=TED:NOTICE:426046-2018:TEXT:FI:HTML
+ http://ted.europa.eu/udl?uri=TED:NOTICE:426046-2018:TEXT:SV:HTML
+ http://ted.europa.eu/udl?uri=TED:NOTICE:426046-2018:TEXT:RO:HTML
+ http://ted.europa.eu/udl?uri=TED:NOTICE:426046-2018:TEXT:GA:HTML
+ http://ted.europa.eu/udl?uri=TED:NOTICE:426046-2018:TEXT:BG:HTML
+
+ EN
+
+
+ High-voltage cable
+
+
+ 20180926
+ 20181226
+ Utilities entity
+ Contract award notice
+ Works
+ Open procedure
+ European Investment Bank, European Investment Fund, European Bank for Reconstruction
+ and Development
+
+ Not applicable
+ Not specified
+ Not specified
+ BI406
+
+
+
+
+
+ Замбия
+ Лусака
+
+ ЕИБ - Подстанции за високо напрежение
+
+
+
+ Zambie
+ Lusaka
+
+ EIB - Rozvodny vysokého napětí
+
+
+
+ Zambia
+ Lusaka
+
+ EIB - Højspændingstransformerstationer
+
+
+
+ Sambia
+ Lusaka
+
+ EIB - Hochspannungs-Umspannstationen
+
+
+
+ Ζάμπια
+ Λουσάκα
+
+ ΕΤΕπ - Υποσταθμοί υψηλής τάσης
+
+
+
+ Zambia
+ Lusaka
+
+ EIB - High voltage substations
+
+
+
+ Zambia
+ Lusaka
+
+ BEI - Subestaciones de alto voltaje
+
+
+
+ Sambia
+ Lusaka
+
+ EIP - Kõrgepingealajaamad
+
+
+
+ Sambia
+ Lusaka
+
+ EIP - Suurjännitemuuntoasemat
+
+
+
+ Zambie
+ Lusaka
+
+ BEI - Sous-stations à haute tension
+
+
+
+ Saimbia, an t
+ Lusaka
+
+ BEI - High voltage substations
+
+
+
+ Zambija
+ Lusaka
+
+ EIB - Egipatski prijenos električne energije
+
+
+
+ Zambia
+ Lusaka
+
+ EBB - Nagyfeszültségű alállomások
+
+
+
+ Zambia
+ Lusaka
+
+ BEI - Sottostazioni ad alto voltaggio
+
+
+
+ Zambija
+ Lusaka
+
+ EIB - Aukštos įtampos pastotės
+
+
+
+ Zambija
+ Lusaka
+
+ EIB - Augstsprieguma apakšstacijas
+
+
+
+ iż-Żambja
+ Lusaka
+
+ BEI - Stazzjonijiet sekondarji ta’ vultaġġ għoli
+
+
+
+ Zambia
+ Lusaka
+
+ EIB - Hoogspanningsonderstations
+
+
+
+ Zambia
+ Lusaka
+
+ EBI - Podstacje wysokiego napięcia
+
+
+
+ Zâmbia
+ Lusaca
+
+ BEI - Subestações de alta tensão
+
+
+
+ Zambia
+ Lusaka
+
+ BEI - Substaţii de înaltă tensiune
+
+
+
+ Zambia
+ Lusaka
+
+ EIB - Rozvodne vysokého napätia
+
+
+
+ Zambija
+ Lusaka
+
+ EIB - Visoko-napetostne razdelilne postaje
+
+
+
+ Zambia
+ Lusaka
+
+ EIB - Högspänningstransformatorstationer
+
+
+
+
+ ZESCO Limited
+ ZESCO Limited
+ ZESCO Limited
+ ZESCO Limited
+ ZESCO Limited
+ ZESCO Limited
+ ZESCO Limited
+ ZESCO Limited
+ ZESCO Limited
+ ZESCO Limited
+ ZESCO Limited
+ ZESCO Limited
+ ZESCO Limited
+ ZESCO Limited
+ ZESCO Limited
+ ZESCO Limited
+ ZESCO Limited
+ ZESCO Limited
+ ZESCO Limited
+ ZESCO Limited
+ ZESCO Limited
+ ZESCO Limited
+ ZESCO Limited
+ ZESCO Limited
+
+
+
+
+
+
+ EIB - High voltage substations (ZM-Lusaka)
+
+
+ Award notice
+
+
+ Project title: Lusaka Power Transmission and Distribution Network
+ Project number: 2012-0602
+ Lot title: Procurement of 2 Substations and Associated Switching Stations in 2 lots – Lot 2:
+ Chawama 132/11 kV
+
+ Publication reference: OJ/S S101 – 200031-2017
+ Publication date of the procurement notice: 27.5.2017
+ Promoter’s name:
+
+ ZESCO Limited
+ ,
+ Lusaka
+ , ZAMBIA
+
+
+ Contract value: 10 768 794,05 USD
+ Date of award of contract: 20 September 2018
+ Number of bids received: 21
+ Name of successful bidder: Sieyuan Electric Co. Ltd in Joint Venture with Techno electric
+ Engineering Co., Limited, Sieyuan No. 4399 Jindu road, MinhangDist, Shangai — China.
+
+
+
+
+
+
+
+ EIB - High voltage substations (ZM-Lusaka)
+
+
+ Award notice
+
+
+ Project title: Lusaka Power Transmission and Distribution Network
+ Project number: 2012-0602
+ Lot title: Procurement of 2 Substations and Associated Switching Stations in 2 lots – Lot 2:
+ Chawama 132/11 kV
+
+ Publication reference: OJ/S S101 – 200031-2017
+ Publication date of the procurement notice: 27.5.2017
+ Promoter’s name:
+
+ ZESCO Limited
+ ,
+ Lusaka
+ , ZAMBIA
+
+
+ Contract value: 10 768 794,05 USD
+ Date of award of contract: 20 September 2018
+ Number of bids received: 21
+ Name of successful bidder: Sieyuan Electric Co. Ltd in Joint Venture with Techno electric
+ Engineering Co., Limited, Sieyuan No. 4399 Jindu road, MinhangDist, Shangai — China.
+
+
+
+
+
+
+
+ EIB - High voltage substations (ZM-Lusaka)
+
+
+ Award notice
+
+
+ Project title: Lusaka Power Transmission and Distribution Network
+ Project number: 2012-0602
+ Lot title: Procurement of 2 Substations and Associated Switching Stations in 2 lots – Lot 2:
+ Chawama 132/11 kV
+
+ Publication reference: OJ/S S101 – 200031-2017
+ Publication date of the procurement notice: 27.5.2017
+ Promoter’s name:
+
+ ZESCO Limited
+ ,
+ Lusaka
+ , ZAMBIA
+
+
+ Contract value: 10 768 794,05 USD
+ Date of award of contract: 20 September 2018
+ Number of bids received: 21
+ Name of successful bidder: Sieyuan Electric Co. Ltd in Joint Venture with Techno electric
+ Engineering Co., Limited, Sieyuan No. 4399 Jindu road, MinhangDist, Shangai — China.
+
+
+
+
+
+
+
+ EIB - High voltage substations (ZM-Lusaka)
+
+
+ Award notice
+
+
+ Project title: Lusaka Power Transmission and Distribution Network
+ Project number: 2012-0602
+ Lot title: Procurement of 2 Substations and Associated Switching Stations in 2 lots – Lot 2:
+ Chawama 132/11 kV
+
+ Publication reference: OJ/S S101 – 200031-2017
+ Publication date of the procurement notice: 27.5.2017
+ Promoter’s name:
+
+ ZESCO Limited
+ ,
+ Lusaka
+ , ZAMBIA
+
+
+ Contract value: 10 768 794,05 USD
+ Date of award of contract: 20 September 2018
+ Number of bids received: 21
+ Name of successful bidder: Sieyuan Electric Co. Ltd in Joint Venture with Techno electric
+ Engineering Co., Limited, Sieyuan No. 4399 Jindu road, MinhangDist, Shangai — China.
+
+
+
+
+
+
+
+ EIB - High voltage substations (ZM-Lusaka)
+
+
+ Award notice
+
+
+ Project title: Lusaka Power Transmission and Distribution Network
+ Project number: 2012-0602
+ Lot title: Procurement of 2 Substations and Associated Switching Stations in 2 lots – Lot 2:
+ Chawama 132/11 kV
+
+ Publication reference: OJ/S S101 – 200031-2017
+ Publication date of the procurement notice: 27.5.2017
+ Promoter’s name:
+
+ ZESCO Limited
+ ,
+ Lusaka
+ , ZAMBIA
+
+
+ Contract value: 10 768 794,05 USD
+ Date of award of contract: 20 September 2018
+ Number of bids received: 21
+ Name of successful bidder: Sieyuan Electric Co. Ltd in Joint Venture with Techno electric
+ Engineering Co., Limited, Sieyuan No. 4399 Jindu road, MinhangDist, Shangai — China.
+
+
+
+
+
+
+
+ EIB - High voltage substations (ZM-Lusaka)
+
+
+ Award notice
+
+
+ Project title: Lusaka Power Transmission and Distribution Network
+ Project number: 2012-0602
+ Lot title: Procurement of 2 Substations and Associated Switching Stations in 2 lots – Lot 2:
+ Chawama 132/11 kV
+
+ Publication reference: OJ/S S101 – 200031-2017
+ Publication date of the procurement notice: 27.5.2017
+ Promoter’s name:
+
+ ZESCO Limited
+ ,
+ Lusaka
+ , ZAMBIA
+
+
+ Contract value: 10 768 794,05 USD
+ Date of award of contract: 20 September 2018
+ Number of bids received: 21
+ Name of successful bidder: Sieyuan Electric Co. Ltd in Joint Venture with Techno electric
+ Engineering Co., Limited, Sieyuan No. 4399 Jindu road, MinhangDist, Shangai — China.
+
+
+
+
+
+
+
+ EIB - High voltage substations (ZM-Lusaka)
+
+
+ Award notice
+
+
+ Project title: Lusaka Power Transmission and Distribution Network
+ Project number: 2012-0602
+ Lot title: Procurement of 2 Substations and Associated Switching Stations in 2 lots – Lot 2:
+ Chawama 132/11 kV
+
+ Publication reference: OJ/S S101 – 200031-2017
+ Publication date of the procurement notice: 27.5.2017
+ Promoter’s name:
+
+ ZESCO Limited
+ ,
+ Lusaka
+ , ZAMBIA
+
+
+ Contract value: 10 768 794,05 USD
+ Date of award of contract: 20 September 2018
+ Number of bids received: 21
+ Name of successful bidder: Sieyuan Electric Co. Ltd in Joint Venture with Techno electric
+ Engineering Co., Limited, Sieyuan No. 4399 Jindu road, MinhangDist, Shangai — China.
+
+
+
+
+
+
+
+ EIB - High voltage substations (ZM-Lusaka)
+
+
+ Award notice
+
+
+ Project title: Lusaka Power Transmission and Distribution Network
+ Project number: 2012-0602
+ Lot title: Procurement of 2 Substations and Associated Switching Stations in 2 lots – Lot 2:
+ Chawama 132/11 kV
+
+ Publication reference: OJ/S S101 – 200031-2017
+ Publication date of the procurement notice: 27.5.2017
+ Promoter’s name:
+
+ ZESCO Limited
+ ,
+ Lusaka
+ , ZAMBIA
+
+
+ Contract value: 10 768 794,05 USD
+ Date of award of contract: 20 September 2018
+ Number of bids received: 21
+ Name of successful bidder: Sieyuan Electric Co. Ltd in Joint Venture with Techno electric
+ Engineering Co., Limited, Sieyuan No. 4399 Jindu road, MinhangDist, Shangai — China.
+
+
+
+
+
+
+
+ EIB - High voltage substations (ZM-Lusaka)
+
+
+ Award notice
+
+
+ Project title: Lusaka Power Transmission and Distribution Network
+ Project number: 2012-0602
+ Lot title: Procurement of 2 Substations and Associated Switching Stations in 2 lots – Lot 2:
+ Chawama 132/11 kV
+
+ Publication reference: OJ/S S101 – 200031-2017
+ Publication date of the procurement notice: 27.5.2017
+ Promoter’s name:
+
+ ZESCO Limited
+ ,
+ Lusaka
+ , ZAMBIA
+
+
+ Contract value: 10 768 794,05 USD
+ Date of award of contract: 20 September 2018
+ Number of bids received: 21
+ Name of successful bidder: Sieyuan Electric Co. Ltd in Joint Venture with Techno electric
+ Engineering Co., Limited, Sieyuan No. 4399 Jindu road, MinhangDist, Shangai — China.
+
+
+
+
+
+
+
+ EIB - High voltage substations (ZM-Lusaka)
+
+
+ Award notice
+
+
+ Project title: Lusaka Power Transmission and Distribution Network
+ Project number: 2012-0602
+ Lot title: Procurement of 2 Substations and Associated Switching Stations in 2 lots – Lot 2:
+ Chawama 132/11 kV
+
+ Publication reference: OJ/S S101 – 200031-2017
+ Publication date of the procurement notice: 27.5.2017
+ Promoter’s name:
+
+ ZESCO Limited
+ ,
+ Lusaka
+ , ZAMBIA
+
+
+ Contract value: 10 768 794,05 USD
+ Date of award of contract: 20 September 2018
+ Number of bids received: 21
+ Name of successful bidder: Sieyuan Electric Co. Ltd in Joint Venture with Techno electric
+ Engineering Co., Limited, Sieyuan No. 4399 Jindu road, MinhangDist, Shangai — China.
+
+
+
+
+
+
+
+ EIB - High voltage substations (ZM-Lusaka)
+
+
+ Award notice
+
+
+ Project title: Lusaka Power Transmission and Distribution Network
+ Project number: 2012-0602
+ Lot title: Procurement of 2 Substations and Associated Switching Stations in 2 lots – Lot 2:
+ Chawama 132/11 kV
+
+ Publication reference: OJ/S S101 – 200031-2017
+ Publication date of the procurement notice: 27.5.2017
+ Promoter’s name:
+
+ ZESCO Limited
+ ,
+ Lusaka
+ , ZAMBIA
+
+
+ Contract value: 10 768 794,05 USD
+ Date of award of contract: 20 September 2018
+ Number of bids received: 21
+ Name of successful bidder: Sieyuan Electric Co. Ltd in Joint Venture with Techno electric
+ Engineering Co., Limited, Sieyuan No. 4399 Jindu road, MinhangDist, Shangai — China.
+
+
+
+
+
+
+
+ EIB - High voltage substations (ZM-Lusaka)
+
+
+ Award notice
+
+
+ Project title: Lusaka Power Transmission and Distribution Network
+ Project number: 2012-0602
+ Lot title: Procurement of 2 Substations and Associated Switching Stations in 2 lots – Lot 2:
+ Chawama 132/11 kV
+
+ Publication reference: OJ/S S101 – 200031-2017
+ Publication date of the procurement notice: 27.5.2017
+ Promoter’s name:
+
+ ZESCO Limited
+ ,
+ Lusaka
+ , ZAMBIA
+
+
+ Contract value: 10 768 794,05 USD
+ Date of award of contract: 20 September 2018
+ Number of bids received: 21
+ Name of successful bidder: Sieyuan Electric Co. Ltd in Joint Venture with Techno electric
+ Engineering Co., Limited, Sieyuan No. 4399 Jindu road, MinhangDist, Shangai — China.
+
+
+
+
+
+
+
+ EIB - High voltage substations (ZM-Lusaka)
+
+
+ Award notice
+
+
+ Project title: Lusaka Power Transmission and Distribution Network
+ Project number: 2012-0602
+ Lot title: Procurement of 2 Substations and Associated Switching Stations in 2 lots – Lot 2:
+ Chawama 132/11 kV
+
+ Publication reference: OJ/S S101 – 200031-2017
+ Publication date of the procurement notice: 27.5.2017
+ Promoter’s name:
+
+ ZESCO Limited
+ ,
+ Lusaka
+ , ZAMBIA
+
+
+ Contract value: 10 768 794,05 USD
+ Date of award of contract: 20 September 2018
+ Number of bids received: 21
+ Name of successful bidder: Sieyuan Electric Co. Ltd in Joint Venture with Techno electric
+ Engineering Co., Limited, Sieyuan No. 4399 Jindu road, MinhangDist, Shangai — China.
+
+
+
+
+
+
+
+ EIB - High voltage substations (ZM-Lusaka)
+
+
+ Award notice
+
+
+ Project title: Lusaka Power Transmission and Distribution Network
+ Project number: 2012-0602
+ Lot title: Procurement of 2 Substations and Associated Switching Stations in 2 lots – Lot 2:
+ Chawama 132/11 kV
+
+ Publication reference: OJ/S S101 – 200031-2017
+ Publication date of the procurement notice: 27.5.2017
+ Promoter’s name:
+
+ ZESCO Limited
+ ,
+ Lusaka
+ , ZAMBIA
+
+
+ Contract value: 10 768 794,05 USD
+ Date of award of contract: 20 September 2018
+ Number of bids received: 21
+ Name of successful bidder: Sieyuan Electric Co. Ltd in Joint Venture with Techno electric
+ Engineering Co., Limited, Sieyuan No. 4399 Jindu road, MinhangDist, Shangai — China.
+
+
+
+
+
+
+
+ EIB - High voltage substations (ZM-Lusaka)
+
+
+ Award notice
+
+
+ Project title: Lusaka Power Transmission and Distribution Network
+ Project number: 2012-0602
+ Lot title: Procurement of 2 Substations and Associated Switching Stations in 2 lots – Lot 2:
+ Chawama 132/11 kV
+
+ Publication reference: OJ/S S101 – 200031-2017
+ Publication date of the procurement notice: 27.5.2017
+ Promoter’s name:
+
+ ZESCO Limited
+ ,
+ Lusaka
+ , ZAMBIA
+
+
+ Contract value: 10 768 794,05 USD
+ Date of award of contract: 20 September 2018
+ Number of bids received: 21
+ Name of successful bidder: Sieyuan Electric Co. Ltd in Joint Venture with Techno electric
+ Engineering Co., Limited, Sieyuan No. 4399 Jindu road, MinhangDist, Shangai — China.
+
+
+
+
+
+
+
+ EIB - High voltage substations (ZM-Lusaka)
+
+
+ Award notice
+
+
+ Project title: Lusaka Power Transmission and Distribution Network
+ Project number: 2012-0602
+ Lot title: Procurement of 2 Substations and Associated Switching Stations in 2 lots – Lot 2:
+ Chawama 132/11 kV
+
+ Publication reference: OJ/S S101 – 200031-2017
+ Publication date of the procurement notice: 27.5.2017
+ Promoter’s name:
+
+ ZESCO Limited
+ ,
+ Lusaka
+ , ZAMBIA
+
+
+ Contract value: 10 768 794,05 USD
+ Date of award of contract: 20 September 2018
+ Number of bids received: 21
+ Name of successful bidder: Sieyuan Electric Co. Ltd in Joint Venture with Techno electric
+ Engineering Co., Limited, Sieyuan No. 4399 Jindu road, MinhangDist, Shangai — China.
+
+
+
+
+
+
+
+ EIB - High voltage substations (ZM-Lusaka)
+
+
+ Award notice
+
+
+ Project title: Lusaka Power Transmission and Distribution Network
+ Project number: 2012-0602
+ Lot title: Procurement of 2 Substations and Associated Switching Stations in 2 lots – Lot 2:
+ Chawama 132/11 kV
+
+ Publication reference: OJ/S S101 – 200031-2017
+ Publication date of the procurement notice: 27.5.2017
+ Promoter’s name:
+
+ ZESCO Limited
+ ,
+ Lusaka
+ , ZAMBIA
+
+
+ Contract value: 10 768 794,05 USD
+ Date of award of contract: 20 September 2018
+ Number of bids received: 21
+ Name of successful bidder: Sieyuan Electric Co. Ltd in Joint Venture with Techno electric
+ Engineering Co., Limited, Sieyuan No. 4399 Jindu road, MinhangDist, Shangai — China.
+
+
+
+
+
+
+
+ EIB - High voltage substations (ZM-Lusaka)
+
+
+ Award notice
+
+
+ Project title: Lusaka Power Transmission and Distribution Network
+ Project number: 2012-0602
+ Lot title: Procurement of 2 Substations and Associated Switching Stations in 2 lots – Lot 2:
+ Chawama 132/11 kV
+
+ Publication reference: OJ/S S101 – 200031-2017
+ Publication date of the procurement notice: 27.5.2017
+ Promoter’s name:
+
+ ZESCO Limited
+ ,
+ Lusaka
+ , ZAMBIA
+
+
+ Contract value: 10 768 794,05 USD
+ Date of award of contract: 20 September 2018
+ Number of bids received: 21
+ Name of successful bidder: Sieyuan Electric Co. Ltd in Joint Venture with Techno electric
+ Engineering Co., Limited, Sieyuan No. 4399 Jindu road, MinhangDist, Shangai — China.
+
+
+
+
+
+
+
+ EIB - High voltage substations (ZM-Lusaka)
+
+
+ Award notice
+
+
+ Project title: Lusaka Power Transmission and Distribution Network
+ Project number: 2012-0602
+ Lot title: Procurement of 2 Substations and Associated Switching Stations in 2 lots – Lot 2:
+ Chawama 132/11 kV
+
+ Publication reference: OJ/S S101 – 200031-2017
+ Publication date of the procurement notice: 27.5.2017
+ Promoter’s name:
+
+ ZESCO Limited
+ ,
+ Lusaka
+ , ZAMBIA
+
+
+ Contract value: 10 768 794,05 USD
+ Date of award of contract: 20 September 2018
+ Number of bids received: 21
+ Name of successful bidder: Sieyuan Electric Co. Ltd in Joint Venture with Techno electric
+ Engineering Co., Limited, Sieyuan No. 4399 Jindu road, MinhangDist, Shangai — China.
+
+
+
+
+
+
+
+ EIB - High voltage substations (ZM-Lusaka)
+
+
+ Award notice
+
+
+ Project title: Lusaka Power Transmission and Distribution Network
+ Project number: 2012-0602
+ Lot title: Procurement of 2 Substations and Associated Switching Stations in 2 lots – Lot 2:
+ Chawama 132/11 kV
+
+ Publication reference: OJ/S S101 – 200031-2017
+ Publication date of the procurement notice: 27.5.2017
+ Promoter’s name:
+
+ ZESCO Limited
+ ,
+ Lusaka
+ , ZAMBIA
+
+
+ Contract value: 10 768 794,05 USD
+ Date of award of contract: 20 September 2018
+ Number of bids received: 21
+ Name of successful bidder: Sieyuan Electric Co. Ltd in Joint Venture with Techno electric
+ Engineering Co., Limited, Sieyuan No. 4399 Jindu road, MinhangDist, Shangai — China.
+
+
+
+
+
+
+
+ EIB - High voltage substations (ZM-Lusaka)
+
+
+ Award notice
+
+
+ Project title: Lusaka Power Transmission and Distribution Network
+ Project number: 2012-0602
+ Lot title: Procurement of 2 Substations and Associated Switching Stations in 2 lots – Lot 2:
+ Chawama 132/11 kV
+
+ Publication reference: OJ/S S101 – 200031-2017
+ Publication date of the procurement notice: 27.5.2017
+ Promoter’s name:
+
+ ZESCO Limited
+ ,
+ Lusaka
+ , ZAMBIA
+
+
+ Contract value: 10 768 794,05 USD
+ Date of award of contract: 20 September 2018
+ Number of bids received: 21
+ Name of successful bidder: Sieyuan Electric Co. Ltd in Joint Venture with Techno electric
+ Engineering Co., Limited, Sieyuan No. 4399 Jindu road, MinhangDist, Shangai — China.
+
+
+
+
+
+
+
+ EIB - High voltage substations (ZM-Lusaka)
+
+
+ Award notice
+
+
+ Project title: Lusaka Power Transmission and Distribution Network
+ Project number: 2012-0602
+ Lot title: Procurement of 2 Substations and Associated Switching Stations in 2 lots – Lot 2:
+ Chawama 132/11 kV
+
+ Publication reference: OJ/S S101 – 200031-2017
+ Publication date of the procurement notice: 27.5.2017
+ Promoter’s name:
+
+ ZESCO Limited
+ ,
+ Lusaka
+ , ZAMBIA
+
+
+ Contract value: 10 768 794,05 USD
+ Date of award of contract: 20 September 2018
+ Number of bids received: 21
+ Name of successful bidder: Sieyuan Electric Co. Ltd in Joint Venture with Techno electric
+ Engineering Co., Limited, Sieyuan No. 4399 Jindu road, MinhangDist, Shangai — China.
+
+
+
+
+
+
+
+ EIB - High voltage substations (ZM-Lusaka)
+
+
+ Award notice
+
+
+ Project title: Lusaka Power Transmission and Distribution Network
+ Project number: 2012-0602
+ Lot title: Procurement of 2 Substations and Associated Switching Stations in 2 lots – Lot 2:
+ Chawama 132/11 kV
+
+ Publication reference: OJ/S S101 – 200031-2017
+ Publication date of the procurement notice: 27.5.2017
+ Promoter’s name:
+
+ ZESCO Limited
+ ,
+ Lusaka
+ , ZAMBIA
+
+
+ Contract value: 10 768 794,05 USD
+ Date of award of contract: 20 September 2018
+ Number of bids received: 21
+ Name of successful bidder: Sieyuan Electric Co. Ltd in Joint Venture with Techno electric
+ Engineering Co., Limited, Sieyuan No. 4399 Jindu road, MinhangDist, Shangai — China.
+
+
+
+
+
+
+
+ EIB - High voltage substations (ZM-Lusaka)
+
+
+ Award notice
+
+
+ Project title: Lusaka Power Transmission and Distribution Network
+ Project number: 2012-0602
+ Lot title: Procurement of 2 Substations and Associated Switching Stations in 2 lots – Lot 2:
+ Chawama 132/11 kV
+
+ Publication reference: OJ/S S101 – 200031-2017
+ Publication date of the procurement notice: 27.5.2017
+ Promoter’s name:
+
+ ZESCO Limited
+ ,
+ Lusaka
+ , ZAMBIA
+
+
+ Contract value: 10 768 794,05 USD
+ Date of award of contract: 20 September 2018
+ Number of bids received: 21
+ Name of successful bidder: Sieyuan Electric Co. Ltd in Joint Venture with Techno electric
+ Engineering Co., Limited, Sieyuan No. 4399 Jindu road, MinhangDist, Shangai — China.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/test_data/notice_validator/test_repository/test_sparql_package/transformation/conceptual_mappings.xlsx b/tests/test_data/notice_validator/test_repository/test_sparql_package/transformation/conceptual_mappings.xlsx
new file mode 100644
index 000000000..29793f9be
Binary files /dev/null and b/tests/test_data/notice_validator/test_repository/test_sparql_package/transformation/conceptual_mappings.xlsx differ
diff --git a/tests/test_data/notice_validator/test_repository/test_sparql_package/transformation/mappings/mappings.rml.ttl b/tests/test_data/notice_validator/test_repository/test_sparql_package/transformation/mappings/mappings.rml.ttl
new file mode 100644
index 000000000..5986e9e21
--- /dev/null
+++ b/tests/test_data/notice_validator/test_repository/test_sparql_package/transformation/mappings/mappings.rml.ttl
@@ -0,0 +1,8029 @@
+@prefix rr: .
+@prefix rml: .
+@prefix rdf: .
+@prefix rdfs: .
+@prefix ql: .
+@prefix map: .
+@prefix xsd: .
+@prefix sd: .
+@prefix ht: .
+@prefix v: .
+@prefix epo: .
+@prefix epd: .
+@prefix locn: .
+@prefix grel: .
+@prefix dct: .
+@prefix xf: .
+
+map:fn_000 rml:logicalSource map:source_009 ;
+ rr:predicateObjectMap map:pom_000, map:pom_001, map:pomexec_000 .
+
+map:fn_001 rml:logicalSource map:source_009 ;
+ rr:predicateObjectMap map:pom_002, map:pomexec_001 .
+
+map:fn_002 rml:logicalSource map:source_009 ;
+ rr:predicateObjectMap map:pom_008, map:pom_010, map:pomexec_002 .
+
+map:fn_003 rml:logicalSource map:source_009 ;
+ rr:predicateObjectMap map:pom_009, map:pomexec_003 .
+
+map:fn_004 rml:logicalSource map:source_010 ;
+ rr:predicateObjectMap map:pom_012, map:pom_013, map:pomexec_004 .
+
+map:fn_005 rml:logicalSource map:source_010 ;
+ rr:predicateObjectMap map:pom_014, map:pomexec_005 .
+
+map:fn_006 rml:logicalSource map:source_011 ;
+ rr:predicateObjectMap map:pom_017, map:pom_018, map:pomexec_006 .
+
+map:fn_007 rml:logicalSource map:source_011 ;
+ rr:predicateObjectMap map:pom_019, map:pomexec_007 .
+
+map:fn_008 rml:logicalSource map:source_012 ;
+ rr:predicateObjectMap map:pom_025, map:pom_026, map:pomexec_008 .
+
+map:fn_009 rml:logicalSource map:source_012 ;
+ rr:predicateObjectMap map:pom_027, map:pomexec_009 .
+
+map:fn_010 rml:logicalSource map:source_013 ;
+ rr:predicateObjectMap map:pom_030, map:pom_031, map:pomexec_010 .
+
+map:fn_011 rml:logicalSource map:source_013 ;
+ rr:predicateObjectMap map:pom_032, map:pomexec_011 .
+
+map:fn_012 rml:logicalSource map:source_014 ;
+ rr:predicateObjectMap map:pom_039, map:pom_040, map:pomexec_012 .
+
+map:fn_013 rml:logicalSource map:source_014 ;
+ rr:predicateObjectMap map:pom_041, map:pomexec_013 .
+
+map:fn_014 rml:logicalSource map:source_015 ;
+ rr:predicateObjectMap map:pom_044, map:pom_045, map:pomexec_014 .
+
+map:fn_015 rml:logicalSource map:source_015 ;
+ rr:predicateObjectMap map:pom_046, map:pomexec_015 .
+
+map:fn_016 rml:logicalSource map:source_016 ;
+ rr:predicateObjectMap map:pom_053, map:pom_054, map:pomexec_016 .
+
+map:fn_017 rml:logicalSource map:source_016 ;
+ rr:predicateObjectMap map:pom_055, map:pomexec_017 .
+
+map:fn_018 rml:logicalSource map:source_017 ;
+ rr:predicateObjectMap map:pom_066, map:pom_067, map:pomexec_018 .
+
+map:fn_019 rml:logicalSource map:source_017 ;
+ rr:predicateObjectMap map:pom_068, map:pomexec_019 .
+
+map:fn_020 rml:logicalSource map:source_018 ;
+ rr:predicateObjectMap map:pom_074, map:pom_075, map:pomexec_020 .
+
+map:fn_021 rml:logicalSource map:source_018 ;
+ rr:predicateObjectMap map:pom_076, map:pomexec_021 .
+
+map:fn_022 rml:logicalSource map:source_019 ;
+ rr:predicateObjectMap map:pom_082, map:pom_083, map:pomexec_022 .
+
+map:fn_023 rml:logicalSource map:source_019 ;
+ rr:predicateObjectMap map:pom_084, map:pomexec_023 .
+
+map:fn_024 rml:logicalSource map:source_020 ;
+ rr:predicateObjectMap map:pom_090, map:pom_091, map:pomexec_024 .
+
+map:fn_025 rml:logicalSource map:source_020 ;
+ rr:predicateObjectMap map:pom_092, map:pomexec_025 .
+
+map:fn_026 rml:logicalSource map:source_020 ;
+ rr:predicateObjectMap map:pom_102, map:pom_105, map:pomexec_026 .
+
+map:fn_027 rml:logicalSource map:source_020 ;
+ rr:predicateObjectMap map:pom_103, map:pomexec_027 .
+
+map:fn_028 rml:logicalSource map:source_020 ;
+ rr:predicateObjectMap map:pom_104, map:pomexec_028 .
+
+map:fn_029 rml:logicalSource map:source_020 ;
+ rr:predicateObjectMap map:pom_107, map:pom_110, map:pomexec_029 .
+
+map:fn_030 rml:logicalSource map:source_020 ;
+ rr:predicateObjectMap map:pom_108, map:pomexec_030 .
+
+map:fn_031 rml:logicalSource map:source_020 ;
+ rr:predicateObjectMap map:pom_109, map:pomexec_031 .
+
+map:fn_032 rml:logicalSource map:source_020 ;
+ rr:predicateObjectMap map:pom_112, map:pom_115, map:pomexec_032 .
+
+map:fn_033 rml:logicalSource map:source_020 ;
+ rr:predicateObjectMap map:pom_113, map:pomexec_033 .
+
+map:fn_034 rml:logicalSource map:source_020 ;
+ rr:predicateObjectMap map:pom_114, map:pomexec_034 .
+
+map:fn_035 rml:logicalSource map:source_020 ;
+ rr:predicateObjectMap map:pom_117, map:pom_120, map:pomexec_035 .
+
+map:fn_036 rml:logicalSource map:source_020 ;
+ rr:predicateObjectMap map:pom_118, map:pomexec_036 .
+
+map:fn_037 rml:logicalSource map:source_020 ;
+ rr:predicateObjectMap map:pom_119, map:pomexec_037 .
+
+map:fn_038 rml:logicalSource map:source_020 ;
+ rr:predicateObjectMap map:pom_122, map:pom_125, map:pomexec_038 .
+
+map:fn_039 rml:logicalSource map:source_020 ;
+ rr:predicateObjectMap map:pom_123, map:pomexec_039 .
+
+map:fn_040 rml:logicalSource map:source_020 ;
+ rr:predicateObjectMap map:pom_124, map:pomexec_040 .
+
+map:fn_041 rml:logicalSource map:source_020 ;
+ rr:predicateObjectMap map:pom_127, map:pom_130, map:pomexec_041 .
+
+map:fn_042 rml:logicalSource map:source_020 ;
+ rr:predicateObjectMap map:pom_128, map:pomexec_042 .
+
+map:fn_043 rml:logicalSource map:source_020 ;
+ rr:predicateObjectMap map:pom_129, map:pomexec_043 .
+
+map:fn_044 rml:logicalSource map:source_020 ;
+ rr:predicateObjectMap map:pom_132, map:pomexec_044 .
+
+map:fn_045 rml:logicalSource map:source_020 ;
+ rr:predicateObjectMap map:pom_133, map:pomexec_045 .
+
+map:fn_046 rml:logicalSource map:source_020 ;
+ rr:predicateObjectMap map:pom_136, map:pomexec_046 .
+
+map:fn_047 rml:logicalSource map:source_020 ;
+ rr:predicateObjectMap map:pom_137, map:pomexec_047 .
+
+map:fn_048 rml:logicalSource map:source_020 ;
+ rr:predicateObjectMap map:pom_139, map:pomexec_048 .
+
+map:fn_049 rml:logicalSource map:source_020 ;
+ rr:predicateObjectMap map:pom_140, map:pomexec_049 .
+
+map:fn_050 rml:logicalSource map:source_021 ;
+ rr:predicateObjectMap map:pom_141, map:pom_142, map:pomexec_050 .
+
+map:fn_051 rml:logicalSource map:source_021 ;
+ rr:predicateObjectMap map:pom_143, map:pomexec_051 .
+
+map:fn_052 rml:logicalSource map:source_022 ;
+ rr:predicateObjectMap map:pom_154, map:pom_155, map:pomexec_052 .
+
+map:fn_053 rml:logicalSource map:source_022 ;
+ rr:predicateObjectMap map:pom_156, map:pomexec_053 .
+
+map:fn_054 rml:logicalSource map:source_023 ;
+ rr:predicateObjectMap map:pom_160, map:pom_161, map:pomexec_054 .
+
+map:fn_055 rml:logicalSource map:source_023 ;
+ rr:predicateObjectMap map:pom_162, map:pomexec_055 .
+
+map:fn_056 rml:logicalSource map:source_024 ;
+ rr:predicateObjectMap map:pom_165, map:pom_166, map:pomexec_056 .
+
+map:fn_057 rml:logicalSource map:source_024 ;
+ rr:predicateObjectMap map:pom_167, map:pomexec_057 .
+
+map:fn_058 rml:logicalSource map:source_025 ;
+ rr:predicateObjectMap map:pom_170, map:pom_171, map:pomexec_058 .
+
+map:fn_059 rml:logicalSource map:source_025 ;
+ rr:predicateObjectMap map:pom_172, map:pomexec_059 .
+
+map:fn_060 rml:logicalSource map:source_026 ;
+ rr:predicateObjectMap map:pom_175, map:pom_176, map:pomexec_060 .
+
+map:fn_061 rml:logicalSource map:source_026 ;
+ rr:predicateObjectMap map:pom_177, map:pomexec_061 .
+
+map:fn_062 rml:logicalSource map:source_027 ;
+ rr:predicateObjectMap map:pom_182, map:pom_183, map:pomexec_062 .
+
+map:fn_063 rml:logicalSource map:source_027 ;
+ rr:predicateObjectMap map:pom_184, map:pomexec_063 .
+
+map:fn_064 rml:logicalSource map:source_028 ;
+ rr:predicateObjectMap map:pom_188, map:pom_189, map:pomexec_064 .
+
+map:fn_065 rml:logicalSource map:source_028 ;
+ rr:predicateObjectMap map:pom_190, map:pomexec_065 .
+
+map:fn_066 rml:logicalSource map:source_029 ;
+ rr:predicateObjectMap map:pom_195, map:pom_196, map:pomexec_066 .
+
+map:fn_067 rml:logicalSource map:source_029 ;
+ rr:predicateObjectMap map:pom_197, map:pomexec_067 .
+
+map:fn_068 rml:logicalSource map:source_030 ;
+ rr:predicateObjectMap map:pom_200, map:pom_201, map:pomexec_068 .
+
+map:fn_069 rml:logicalSource map:source_030 ;
+ rr:predicateObjectMap map:pom_202, map:pomexec_069 .
+
+map:fn_070 rml:logicalSource map:source_031 ;
+ rr:predicateObjectMap map:pom_206, map:pom_207, map:pomexec_070 .
+
+map:fn_071 rml:logicalSource map:source_031 ;
+ rr:predicateObjectMap map:pom_208, map:pomexec_071 .
+
+map:fn_072 rml:logicalSource map:source_032 ;
+ rr:predicateObjectMap map:pom_211, map:pom_212, map:pomexec_072 .
+
+map:fn_073 rml:logicalSource map:source_032 ;
+ rr:predicateObjectMap map:pom_213, map:pomexec_073 .
+
+map:fn_074 rml:logicalSource map:source_033 ;
+ rr:predicateObjectMap map:pom_217, map:pom_220, map:pomexec_074 .
+
+map:fn_075 rml:logicalSource map:source_033 ;
+ rr:predicateObjectMap map:pom_218, map:pomexec_075 .
+
+map:fn_076 rml:logicalSource map:source_033 ;
+ rr:predicateObjectMap map:pom_219, map:pomexec_076 .
+
+map:fn_077 rml:logicalSource map:source_033 ;
+ rr:predicateObjectMap map:pom_221, map:pom_222, map:pomexec_077 .
+
+map:fn_078 rml:logicalSource map:source_033 ;
+ rr:predicateObjectMap map:pom_223, map:pomexec_078 .
+
+map:fn_079 rml:logicalSource map:source_034 ;
+ rr:predicateObjectMap map:pom_225, map:pom_228, map:pomexec_079 .
+
+map:fn_080 rml:logicalSource map:source_034 ;
+ rr:predicateObjectMap map:pom_226, map:pomexec_080 .
+
+map:fn_081 rml:logicalSource map:source_034 ;
+ rr:predicateObjectMap map:pom_227, map:pomexec_081 .
+
+map:fn_082 rml:logicalSource map:source_034 ;
+ rr:predicateObjectMap map:pom_229, map:pom_230, map:pomexec_082 .
+
+map:fn_083 rml:logicalSource map:source_034 ;
+ rr:predicateObjectMap map:pom_231, map:pomexec_083 .
+
+map:fn_084 rml:logicalSource map:source_034 ;
+ rr:predicateObjectMap map:pom_234, map:pomexec_084 .
+
+map:fn_085 rml:logicalSource map:source_034 ;
+ rr:predicateObjectMap map:pom_235, map:pomexec_085 .
+
+map:fn_086 rml:logicalSource map:source_035 ;
+ rr:predicateObjectMap map:pom_236, map:pom_239, map:pomexec_086 .
+
+map:fn_087 rml:logicalSource map:source_035 ;
+ rr:predicateObjectMap map:pom_237, map:pomexec_087 .
+
+map:fn_088 rml:logicalSource map:source_035 ;
+ rr:predicateObjectMap map:pom_238, map:pomexec_088 .
+
+map:fn_089 rml:logicalSource map:source_035 ;
+ rr:predicateObjectMap map:pom_240, map:pom_241, map:pomexec_089 .
+
+map:fn_090 rml:logicalSource map:source_035 ;
+ rr:predicateObjectMap map:pom_242, map:pomexec_090 .
+
+map:fn_091 rml:logicalSource map:source_035 ;
+ rr:predicateObjectMap map:pom_244, map:pom_247, map:pomexec_091 .
+
+map:fn_092 rml:logicalSource map:source_035 ;
+ rr:predicateObjectMap map:pom_245, map:pomexec_092 .
+
+map:fn_093 rml:logicalSource map:source_035 ;
+ rr:predicateObjectMap map:pom_246, map:pomexec_093 .
+
+map:fn_094 rml:logicalSource map:source_036 ;
+ rr:predicateObjectMap map:pom_248, map:pom_249, map:pomexec_094 .
+
+map:fn_095 rml:logicalSource map:source_036 ;
+ rr:predicateObjectMap map:pom_250, map:pomexec_095 .
+
+map:fn_096 rml:logicalSource map:source_037 ;
+ rr:predicateObjectMap map:pom_256, map:pom_257, map:pomexec_096 .
+
+map:fn_097 rml:logicalSource map:source_037 ;
+ rr:predicateObjectMap map:pom_258, map:pomexec_097 .
+
+map:fn_098 rml:logicalSource map:source_038 ;
+ rr:predicateObjectMap map:pom_261, map:pom_262, map:pomexec_098 .
+
+map:fn_099 rml:logicalSource map:source_038 ;
+ rr:predicateObjectMap map:pom_263, map:pomexec_099 .
+
+map:fn_100 rml:logicalSource map:source_039 ;
+ rr:predicateObjectMap map:pom_265, map:pom_266, map:pomexec_100 .
+
+map:fn_101 rml:logicalSource map:source_039 ;
+ rr:predicateObjectMap map:pom_267, map:pomexec_101 .
+
+map:fn_102 rml:logicalSource map:source_040 ;
+ rr:predicateObjectMap map:pom_277, map:pom_278, map:pomexec_102 .
+
+map:fn_103 rml:logicalSource map:source_040 ;
+ rr:predicateObjectMap map:pom_279, map:pomexec_103 .
+
+map:fn_104 rml:logicalSource map:source_041 ;
+ rr:predicateObjectMap map:pom_282, map:pom_283, map:pomexec_104 .
+
+map:fn_105 rml:logicalSource map:source_041 ;
+ rr:predicateObjectMap map:pom_284, map:pomexec_105 .
+
+map:fn_106 rml:logicalSource map:source_042 ;
+ rr:predicateObjectMap map:pom_290, map:pom_291, map:pomexec_106 .
+
+map:fn_107 rml:logicalSource map:source_042 ;
+ rr:predicateObjectMap map:pom_292, map:pomexec_107 .
+
+map:fn_108 rml:logicalSource map:source_043 ;
+ rr:predicateObjectMap map:pom_295, map:pom_296, map:pomexec_108 .
+
+map:fn_109 rml:logicalSource map:source_043 ;
+ rr:predicateObjectMap map:pom_297, map:pomexec_109 .
+
+map:fn_110 rml:logicalSource map:source_044 ;
+ rr:predicateObjectMap map:pom_304, map:pom_305, map:pomexec_110 .
+
+map:fn_111 rml:logicalSource map:source_044 ;
+ rr:predicateObjectMap map:pom_306, map:pomexec_111 .
+
+map:fn_112 rml:logicalSource map:source_045 ;
+ rr:predicateObjectMap map:pom_309, map:pom_310, map:pomexec_112 .
+
+map:fn_113 rml:logicalSource map:source_045 ;
+ rr:predicateObjectMap map:pom_311, map:pomexec_113 .
+
+map:fn_114 rml:logicalSource map:source_046 ;
+ rr:predicateObjectMap map:pom_318, map:pom_319, map:pomexec_114 .
+
+map:fn_115 rml:logicalSource map:source_046 ;
+ rr:predicateObjectMap map:pom_320, map:pomexec_115 .
+
+map:fn_116 rml:logicalSource map:source_047 ;
+ rr:predicateObjectMap map:pom_323, map:pom_324, map:pomexec_116 .
+
+map:fn_117 rml:logicalSource map:source_047 ;
+ rr:predicateObjectMap map:pom_325, map:pomexec_117 .
+
+map:fn_118 rml:logicalSource map:source_048 ;
+ rr:predicateObjectMap map:pom_328, map:pom_329, map:pomexec_118 .
+
+map:fn_119 rml:logicalSource map:source_048 ;
+ rr:predicateObjectMap map:pom_330, map:pomexec_119 .
+
+map:fn_120 rml:logicalSource map:source_049 ;
+ rr:predicateObjectMap map:pom_333, map:pom_334, map:pomexec_120 .
+
+map:fn_121 rml:logicalSource map:source_049 ;
+ rr:predicateObjectMap map:pom_335, map:pomexec_121 .
+
+map:fn_122 rml:logicalSource map:source_050 ;
+ rr:predicateObjectMap map:pom_338, map:pom_339, map:pomexec_122 .
+
+map:fn_123 rml:logicalSource map:source_050 ;
+ rr:predicateObjectMap map:pom_340, map:pomexec_123 .
+
+map:fn_124 rml:logicalSource map:source_051 ;
+ rr:predicateObjectMap map:pom_343, map:pom_344, map:pomexec_124 .
+
+map:fn_125 rml:logicalSource map:source_051 ;
+ rr:predicateObjectMap map:pom_345, map:pomexec_125 .
+
+map:fn_126 rml:logicalSource map:source_052 ;
+ rr:predicateObjectMap map:pom_349, map:pom_350, map:pomexec_126 .
+
+map:fn_127 rml:logicalSource map:source_052 ;
+ rr:predicateObjectMap map:pom_351, map:pomexec_127 .
+
+map:fn_128 rml:logicalSource map:source_053 ;
+ rr:predicateObjectMap map:pom_354, map:pom_355, map:pomexec_128 .
+
+map:fn_129 rml:logicalSource map:source_053 ;
+ rr:predicateObjectMap map:pom_356, map:pomexec_129 .
+
+map:fn_130 rml:logicalSource map:source_054 ;
+ rr:predicateObjectMap map:pom_362, map:pom_363, map:pomexec_130 .
+
+map:fn_131 rml:logicalSource map:source_054 ;
+ rr:predicateObjectMap map:pom_364, map:pomexec_131 .
+
+map:fn_132 rml:logicalSource map:source_055 ;
+ rr:predicateObjectMap map:pom_367, map:pom_368, map:pomexec_132 .
+
+map:fn_133 rml:logicalSource map:source_055 ;
+ rr:predicateObjectMap map:pom_369, map:pomexec_133 .
+
+map:fn_134 rml:logicalSource map:source_056 ;
+ rr:predicateObjectMap map:pom_376, map:pom_377, map:pomexec_134 .
+
+map:fn_135 rml:logicalSource map:source_056 ;
+ rr:predicateObjectMap map:pom_378, map:pomexec_135 .
+
+map:fn_136 rml:logicalSource map:source_057 ;
+ rr:predicateObjectMap map:pom_381, map:pom_382, map:pomexec_136 .
+
+map:fn_137 rml:logicalSource map:source_057 ;
+ rr:predicateObjectMap map:pom_383, map:pomexec_137 .
+
+map:fn_138 rml:logicalSource map:source_058 ;
+ rr:predicateObjectMap map:pom_390, map:pom_391, map:pomexec_138 .
+
+map:fn_139 rml:logicalSource map:source_058 ;
+ rr:predicateObjectMap map:pom_392, map:pomexec_139 .
+
+map:fn_140 rml:logicalSource map:source_059 ;
+ rr:predicateObjectMap map:pom_395, map:pom_396, map:pomexec_140 .
+
+map:fn_141 rml:logicalSource map:source_059 ;
+ rr:predicateObjectMap map:pom_397, map:pomexec_141 .
+
+map:fn_142 rml:logicalSource map:source_060 ;
+ rr:predicateObjectMap map:pom_403, map:pom_404, map:pomexec_142 .
+
+map:fn_143 rml:logicalSource map:source_060 ;
+ rr:predicateObjectMap map:pom_405, map:pomexec_143 .
+
+map:fn_144 rml:logicalSource map:source_061 ;
+ rr:predicateObjectMap map:pom_408, map:pom_409, map:pomexec_144 .
+
+map:fn_145 rml:logicalSource map:source_061 ;
+ rr:predicateObjectMap map:pom_410, map:pomexec_145 .
+
+map:fn_146 rml:logicalSource map:source_062 ;
+ rr:predicateObjectMap map:pom_417, map:pom_418, map:pomexec_146 .
+
+map:fn_147 rml:logicalSource map:source_062 ;
+ rr:predicateObjectMap map:pom_419, map:pomexec_147 .
+
+map:fn_148 rml:logicalSource map:source_063 ;
+ rr:predicateObjectMap map:pom_422, map:pom_423, map:pomexec_148 .
+
+map:fn_149 rml:logicalSource map:source_063 ;
+ rr:predicateObjectMap map:pom_424, map:pomexec_149 .
+
+map:fn_150 rml:logicalSource map:source_064 ;
+ rr:predicateObjectMap map:pom_431, map:pom_432, map:pomexec_150 .
+
+map:fn_151 rml:logicalSource map:source_064 ;
+ rr:predicateObjectMap map:pom_433, map:pomexec_151 .
+
+map:fn_152 rml:logicalSource map:source_065 ;
+ rr:predicateObjectMap map:pom_436, map:pom_437, map:pomexec_152 .
+
+map:fn_153 rml:logicalSource map:source_065 ;
+ rr:predicateObjectMap map:pom_438, map:pomexec_153 .
+
+map:fn_154 rml:logicalSource map:source_066 ;
+ rr:predicateObjectMap map:pom_444, map:pom_445, map:pomexec_154 .
+
+map:fn_155 rml:logicalSource map:source_066 ;
+ rr:predicateObjectMap map:pom_446, map:pomexec_155 .
+
+map:fn_156 rml:logicalSource map:source_067 ;
+ rr:predicateObjectMap map:pom_449, map:pom_450, map:pomexec_156 .
+
+map:fn_157 rml:logicalSource map:source_067 ;
+ rr:predicateObjectMap map:pom_451, map:pomexec_157 .
+
+map:fn_158 rml:logicalSource map:source_068 ;
+ rr:predicateObjectMap map:pom_458, map:pom_459, map:pomexec_158 .
+
+map:fn_159 rml:logicalSource map:source_068 ;
+ rr:predicateObjectMap map:pom_460, map:pomexec_159 .
+
+map:fn_160 rml:logicalSource map:source_069 ;
+ rr:predicateObjectMap map:pom_463, map:pom_464, map:pomexec_160 .
+
+map:fn_161 rml:logicalSource map:source_069 ;
+ rr:predicateObjectMap map:pom_465, map:pomexec_161 .
+
+map:fn_162 rr:predicateObjectMap map:pom_472, map:pom_474, map:pomexec_162 .
+
+map:fn_163 rr:predicateObjectMap map:pom_473, map:pomexec_163 .
+
+map:fn_164 rr:predicateObjectMap map:pom_475, map:pom_476, map:pomexec_164 .
+
+map:jc_000 rr:child " /TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/CA_ACTIVITY/@VALUE" ;
+ rr:parent "xmlElement" .
+
+map:jc_001 rr:child " /TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/CA_TYPE/@VALUE" ;
+ rr:parent "xmlElement" .
+
+map:jc_002 rr:child "*/@CODE" ;
+ rr:parent "code.value" .
+
+map:jc_003 rr:child "COUNTRY/@VALUE" ;
+ rr:parent "code.value" .
+
+map:jc_004 rr:child "CPV_MAIN/CPV_SUPPLEMENTARY_CODE/@CODE" ;
+ rr:parent "code.value" .
+
+map:jc_005 rr:child "CPV_MAIN/CPV_CODE/@CODE" ;
+ rr:parent "code.value" .
+
+map:jc_006 map:fn_162 ;
+ rdf:type .
+
+map:jc_007 rr:child "VAL_TOTAL/@CURRENCY" ;
+ rr:parent "code.value" .
+
+map:jc_008 rr:child "OBJECT_DESCR/CPV_ADDITIONAL/CPV_SUPPLEMENTARY_CODE/@CODE" ;
+ rr:parent "code.value" .
+
+map:jc_009 rr:child "OBJECT_DESCR/CPV_ADDITIONAL/CPV_CODE/@CODE" ;
+ rr:parent "code.value" .
+
+map:jc_010 rr:child "@CODE" ;
+ rr:parent "code.value" .
+
+map:jc_011 map:fn_164 ;
+ rdf:type .
+
+map:jc_012 rr:child "*/@CODE" ;
+ rr:parent "code.value" .
+
+map:jc_013 rr:child "COUNTRY/@VALUE" ;
+ rr:parent "code.value" .
+
+map:jc_014 rr:child "*/@CODE" ;
+ rr:parent "code.value" .
+
+map:jc_015 rr:child "COUNTRY/@VALUE" ;
+ rr:parent "code.value" .
+
+map:jc_016 rr:child "*/@CODE" ;
+ rr:parent "code.value" .
+
+map:jc_017 rr:child "COUNTRY/@VALUE" ;
+ rr:parent "code.value" .
+
+map:jc_018 rr:child "*/@CODE" ;
+ rr:parent "code.value" .
+
+map:jc_019 rr:child "COUNTRY/@VALUE" ;
+ rr:parent "code.value" .
+
+map:map_Mediator_000 rml:logicalSource map:source_058 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "Mediator" ;
+ rr:predicateObjectMap map:pom_393, map:pom_394 ;
+ rr:subjectMap map:s_049 .
+
+map:map_ReviewProcedureInformationProvider_000 rml:logicalSource map:source_064 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "ReviewProcedureInformationProvider" ;
+ rr:predicateObjectMap map:pom_434, map:pom_435 ;
+ rr:subjectMap map:s_055 .
+
+map:map_address_000 rml:logicalSource map:source_015 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "address" ;
+ rr:predicateObjectMap map:pom_047, map:pom_048, map:pom_049, map:pom_050, map:pom_051, map:pom_052 ;
+ rr:subjectMap map:s_006 .
+
+map:map_addresscontract_000 rml:logicalSource map:source_045 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "addresscontract" ;
+ rr:predicateObjectMap map:pom_312, map:pom_313, map:pom_314, map:pom_315, map:pom_316, map:pom_317 ;
+ rr:subjectMap map:s_036 .
+
+map:map_addressmediator_000 rml:logicalSource map:source_063 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "addressmediator" ;
+ rr:predicateObjectMap map:pom_425, map:pom_426, map:pom_427, map:pom_428, map:pom_429, map:pom_430 ;
+ rr:subjectMap map:s_054 .
+
+map:map_addressreviewer_000 rml:logicalSource map:source_057 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "addressreviewer" ;
+ rr:predicateObjectMap map:pom_384, map:pom_385, map:pom_386, map:pom_387, map:pom_388, map:pom_389 ;
+ rr:subjectMap map:s_048 .
+
+map:map_addressrpip_000 rml:logicalSource map:source_069 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "addressrpip" ;
+ rr:predicateObjectMap map:pom_466, map:pom_467, map:pom_468, map:pom_469, map:pom_470, map:pom_471 ;
+ rr:subjectMap map:s_060 .
+
+map:map_awardcricost_000 rml:logicalSource map:source_019 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "awardcricost" ;
+ rr:predicateObjectMap map:pom_085, map:pom_086, map:pom_087, map:pom_088, map:pom_089 ;
+ rr:subjectMap map:s_010 .
+
+map:map_awardcriprice_000 rml:logicalSource map:source_018 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "awardcriprice" ;
+ rr:predicateObjectMap map:pom_077, map:pom_078, map:pom_079, map:pom_080, map:pom_081 ;
+ rr:subjectMap map:s_009 .
+
+map:map_awardcriquality_000 rml:logicalSource map:source_017 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "awardcriquality" ;
+ rr:predicateObjectMap map:pom_069, map:pom_070, map:pom_071, map:pom_072, map:pom_073 ;
+ rr:subjectMap map:s_008 .
+
+map:map_awardcriteriontype_000 rml:logicalSource map:source_008 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "awardcriteriontype" ;
+ rr:subjectMap map:s_068 .
+
+map:map_awaredcriterion_000 rml:logicalSource map:source_032 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "awaredcriterion" ;
+ rr:predicateObjectMap map:pom_214, map:pom_215, map:pom_216 ;
+ rr:subjectMap map:s_023 .
+
+map:map_buyer_000 rml:logicalSource map:source_009 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "buyer" ;
+ rr:predicateObjectMap map:pom_003, map:pom_004, map:pom_005, map:pom_006, map:pom_007, map:pom_011 ;
+ rr:subjectMap map:s_000 .
+
+map:map_buyerlegaltype_000 rml:logicalSource map:source_003 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "buyerlegaltype" ;
+ rr:subjectMap map:s_064 .
+
+map:map_buyerprofile_000 rml:logicalSource map:source_010 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "buyerprofile" ;
+ rr:predicateObjectMap map:pom_015, map:pom_016 ;
+ rr:subjectMap map:s_001 .
+
+map:map_channel_000 rml:logicalSource map:source_014 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "channel" ;
+ rr:predicateObjectMap map:pom_042, map:pom_043 ;
+ rr:subjectMap map:s_005 .
+
+map:map_channelcontract_000 rml:logicalSource map:source_044 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "channelcontract" ;
+ rr:predicateObjectMap map:pom_307, map:pom_308 ;
+ rr:subjectMap map:s_035 .
+
+map:map_channelmediator_000 rml:logicalSource map:source_062 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "channelmediator" ;
+ rr:predicateObjectMap map:pom_420, map:pom_421 ;
+ rr:subjectMap map:s_053 .
+
+map:map_channelreviewer_000 rml:logicalSource map:source_056 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "channelreviewer" ;
+ rr:predicateObjectMap map:pom_379, map:pom_380 ;
+ rr:subjectMap map:s_047 .
+
+map:map_channelrpip_000 rml:logicalSource map:source_068 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "channelrpip" ;
+ rr:predicateObjectMap map:pom_461, map:pom_462 ;
+ rr:subjectMap map:s_059 .
+
+map:map_competionnotice_000 rml:logicalSource map:source_023 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "competionnotice" ;
+ rr:predicateObjectMap map:pom_163, map:pom_164 ;
+ rr:subjectMap map:s_014 .
+
+map:map_competionnoticeidentifier_000 rml:logicalSource map:source_024 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "competionnoticeidentifier" ;
+ rr:predicateObjectMap map:pom_168, map:pom_169 ;
+ rr:subjectMap map:s_015 .
+
+map:map_contactPointContract_000 rml:logicalSource map:source_043 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "contactPointContract" ;
+ rr:predicateObjectMap map:pom_298, map:pom_299, map:pom_300, map:pom_301, map:pom_302, map:pom_303 ;
+ rr:subjectMap map:s_034 .
+
+map:map_contactPointMediator_000 rml:logicalSource map:source_061 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "contactPointMediator" ;
+ rr:predicateObjectMap map:pom_411, map:pom_412, map:pom_413, map:pom_414, map:pom_415, map:pom_416 ;
+ rr:subjectMap map:s_052 .
+
+map:map_contactPointReviewer_000 rml:logicalSource map:source_055 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "contactPointReviewer" ;
+ rr:predicateObjectMap map:pom_370, map:pom_371, map:pom_372, map:pom_373, map:pom_374, map:pom_375 ;
+ rr:subjectMap map:s_046 .
+
+map:map_contactPoint_000 rml:logicalSource map:source_013 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "contactPoint" ;
+ rr:predicateObjectMap map:pom_033, map:pom_034, map:pom_035, map:pom_036, map:pom_037, map:pom_038 ;
+ rr:subjectMap map:s_004 .
+
+map:map_contactPointrpip_000 rml:logicalSource map:source_067 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "contactPointrpip" ;
+ rr:predicateObjectMap map:pom_452, map:pom_453, map:pom_454, map:pom_455, map:pom_456, map:pom_457 ;
+ rr:subjectMap map:s_058 .
+
+map:map_contract_000 rml:logicalSource map:source_036 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "contract" ;
+ rr:predicateObjectMap map:pom_251, map:pom_252, map:pom_253, map:pom_254, map:pom_255 ;
+ rr:subjectMap map:s_027 .
+
+map:map_contractidentifier_000 rml:logicalSource map:source_037 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "contractidentifier" ;
+ rr:predicateObjectMap map:pom_259, map:pom_260 ;
+ rr:subjectMap map:s_028 .
+
+map:map_contractnature_000 rml:logicalSource map:source_005 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "contractnature" ;
+ rr:subjectMap map:s_067 .
+
+map:map_contractsignatoryoncontractorside_000 rml:logicalSource map:source_040 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "contractsignatoryoncontractorside" ;
+ rr:predicateObjectMap map:pom_280, map:pom_281 ;
+ rr:subjectMap map:s_031 .
+
+map:map_contractterm_000 rml:logicalSource map:source_029 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "contractterm" ;
+ rr:predicateObjectMap map:pom_198, map:pom_199 ;
+ rr:subjectMap map:s_020 .
+
+map:map_contracttermelocation_000 rml:logicalSource map:source_030 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "contracttermelocation" ;
+ rr:predicateObjectMap map:pom_203, map:pom_204, map:pom_205 ;
+ rr:subjectMap map:s_021 .
+
+map:map_countries_000 rml:logicalSource map:source_002 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "countries" ;
+ rr:subjectMap map:s_063 .
+
+map:map_cpv_000 rml:logicalSource map:source_006 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "cpv" ;
+ rr:subjectMap map:s_066 .
+
+map:map_currency_000 rml:logicalSource map:source_007 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "currency" ;
+ rr:subjectMap map:s_061 .
+
+map:map_dynamicpurchasesystemtechnique_000 rml:logicalSource map:source_034 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "dynamicpurchasesystemtechnique" ;
+ rr:predicateObjectMap map:pom_232, map:pom_233 ;
+ rr:subjectMap map:s_025 .
+
+map:map_eauctiontechnique_000 rml:logicalSource map:source_035 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "eauctiontechnique" ;
+ rr:predicateObjectMap map:pom_243 ;
+ rr:subjectMap map:s_026 .
+
+map:map_framworkagreement_000 rml:logicalSource map:source_033 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "framworkagreement" ;
+ rr:predicateObjectMap map:pom_224 ;
+ rr:subjectMap map:s_024 .
+
+map:map_lot_000 rml:logicalSource map:source_021 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "lot" ;
+ rr:predicateObjectMap map:pom_144, map:pom_145, map:pom_146, map:pom_147, map:pom_148, map:pom_149, map:pom_150, map:pom_151, map:pom_152, map:pom_153 ;
+ rr:subjectMap map:s_012 .
+
+map:map_lotaddress_000 rml:logicalSource map:source_031 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "lotaddress" ;
+ rr:predicateObjectMap map:pom_209, map:pom_210 ;
+ rr:subjectMap map:s_022 .
+
+map:map_lotawardoutcome_000 rml:logicalSource map:source_038 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "lotawardoutcome" ;
+ rr:predicateObjectMap map:pom_264 ;
+ rr:subjectMap map:s_029 .
+
+map:map_lotidentifier_000 rml:logicalSource map:source_022 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "lotidentifier" ;
+ rr:predicateObjectMap map:pom_157, map:pom_158, map:pom_159 ;
+ rr:subjectMap map:s_013 .
+
+map:map_lotpurpose_000 rml:logicalSource map:source_028 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "lotpurpose" ;
+ rr:predicateObjectMap map:pom_191, map:pom_192, map:pom_193, map:pom_194 ;
+ rr:subjectMap map:s_019 .
+
+map:map_mainactivity_000 rml:logicalSource map:source_004 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "mainactivity" ;
+ rr:subjectMap map:s_065 .
+
+map:map_monetaryvalue_000 rml:logicalSource map:source_027 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "monetaryvalue" ;
+ rr:predicateObjectMap map:pom_185, map:pom_186, map:pom_187 ;
+ rr:subjectMap map:s_018 .
+
+map:map_monetaryvaluelot_000 rml:logicalSource map:source_046 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "monetaryvaluelot" ;
+ rr:predicateObjectMap map:pom_321, map:pom_322 ;
+ rr:subjectMap map:s_037 .
+
+map:map_monetaryvaluesubmisionhight_000 rml:logicalSource map:source_049 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "monetaryvaluesubmisionhight" ;
+ rr:predicateObjectMap map:pom_336, map:pom_337 ;
+ rr:subjectMap map:s_040 .
+
+map:map_monetaryvaluesubmissionlow_000 rml:logicalSource map:source_050 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "monetaryvaluesubmissionlow" ;
+ rr:predicateObjectMap map:pom_341, map:pom_342 ;
+ rr:subjectMap map:s_041 .
+
+map:map_monetaryvaluetender_000 rml:logicalSource map:source_048 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "monetaryvaluetender" ;
+ rr:predicateObjectMap map:pom_331, map:pom_332 ;
+ rr:subjectMap map:s_039 .
+
+map:map_nuts_000 rml:logicalSource map:source_001 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "nuts" ;
+ rr:subjectMap map:s_062 .
+
+map:map_organisation_000 rml:logicalSource map:source_011 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "organisation" ;
+ rr:predicateObjectMap map:pom_020, map:pom_021, map:pom_022, map:pom_023, map:pom_024 ;
+ rr:subjectMap map:s_002 .
+
+map:map_organisationcontract_000 rml:logicalSource map:source_041 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "organisationcontract" ;
+ rr:predicateObjectMap map:pom_285, map:pom_286, map:pom_287, map:pom_288, map:pom_289 ;
+ rr:subjectMap map:s_032 .
+
+map:map_organisationidentifier_000 rml:logicalSource map:source_012 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "organisationidentifier" ;
+ rr:predicateObjectMap map:pom_028, map:pom_029 ;
+ rr:subjectMap map:s_003 .
+
+map:map_organisationidentifiercontract_000 rml:logicalSource map:source_042 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "organisationidentifiercontract" ;
+ rr:predicateObjectMap map:pom_293, map:pom_294 ;
+ rr:subjectMap map:s_033 .
+
+map:map_organisationidentifiermediator_000 rml:logicalSource map:source_060 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "organisationidentifiermediator" ;
+ rr:predicateObjectMap map:pom_406, map:pom_407 ;
+ rr:subjectMap map:s_051 .
+
+map:map_organisationidentifierreviewer_000 rml:logicalSource map:source_054 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "organisationidentifierreviewer" ;
+ rr:predicateObjectMap map:pom_365, map:pom_366 ;
+ rr:subjectMap map:s_045 .
+
+map:map_organisationidentifierrpip_000 rml:logicalSource map:source_066 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "organisationidentifierrpip" ;
+ rr:predicateObjectMap map:pom_447, map:pom_448 ;
+ rr:subjectMap map:s_057 .
+
+map:map_organisationmediator_000 rml:logicalSource map:source_059 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "organisationmediator" ;
+ rr:predicateObjectMap map:pom_398, map:pom_399, map:pom_400, map:pom_401, map:pom_402 ;
+ rr:subjectMap map:s_050 .
+
+map:map_organisationreviewer_000 rml:logicalSource map:source_053 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "organisationreviewer" ;
+ rr:predicateObjectMap map:pom_357, map:pom_358, map:pom_359, map:pom_360, map:pom_361 ;
+ rr:subjectMap map:s_044 .
+
+map:map_organisationrpip_000 rml:logicalSource map:source_065 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "organisationrpip" ;
+ rr:predicateObjectMap map:pom_439, map:pom_440, map:pom_441, map:pom_442, map:pom_443 ;
+ rr:subjectMap map:s_056 .
+
+map:map_procedure_000 rml:logicalSource map:source_020 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "procedure" ;
+ rr:predicateObjectMap map:pom_093, map:pom_094, map:pom_095, map:pom_096, map:pom_097, map:pom_098, map:pom_099, map:pom_100, map:pom_101, map:pom_106, map:pom_111, map:pom_116, map:pom_121, map:pom_126, map:pom_131, map:pom_134, map:pom_135, map:pom_138 ;
+ rr:subjectMap map:s_011 .
+
+map:map_procedureidentifier_000 rml:logicalSource map:source_025 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "procedureidentifier" ;
+ rr:predicateObjectMap map:pom_173, map:pom_174 ;
+ rr:subjectMap map:s_016 .
+
+map:map_purpose_000 rml:logicalSource map:source_026 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "purpose" ;
+ rr:predicateObjectMap map:pom_178, map:pom_179, map:pom_180, map:pom_181 ;
+ rr:subjectMap map:s_017 .
+
+map:map_resultnotice_000 rml:logicalSource map:source_016 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "resultnotice" ;
+ rr:predicateObjectMap map:pom_056, map:pom_057, map:pom_058, map:pom_059, map:pom_060, map:pom_061, map:pom_062, map:pom_063, map:pom_064, map:pom_065 ;
+ rr:subjectMap map:s_007 .
+
+map:map_reviewer_000 rml:logicalSource map:source_052 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "reviewer" ;
+ rr:predicateObjectMap map:pom_352, map:pom_353 ;
+ rr:subjectMap map:s_043 .
+
+map:map_subcontractingestimate_000 rml:logicalSource map:source_051 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "subcontractingestimate" ;
+ rr:predicateObjectMap map:pom_346, map:pom_347, map:pom_348 ;
+ rr:subjectMap map:s_042 .
+
+map:map_submissionstatisticalinformation_000 rml:logicalSource map:source_039 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "submissionstatisticalinformation" ;
+ rr:predicateObjectMap map:pom_268, map:pom_269, map:pom_270, map:pom_271, map:pom_272, map:pom_273, map:pom_274, map:pom_275, map:pom_276 ;
+ rr:subjectMap map:s_030 .
+
+map:map_tender_000 rml:logicalSource map:source_047 ;
+ rdf:type rr:TriplesMap ;
+ rdfs:label "tender" ;
+ rr:predicateObjectMap map:pom_326, map:pom_327 ;
+ rr:subjectMap map:s_038 .
+
+map:om_000 rdf:type rr:ObjectMap ;
+ rr:template "http://data.europa.eu/a4g/resource/Buyer/{replace(/TED_EXPORT/CODED_DATA_SECTION/NOTICE_DATA/NO_DOC_OJS, ' ', '-' )}/" ;
+ rr:termType rr:Literal .
+
+map:om_001 map:fn_001 ;
+ rdf:type , rr:ObjectMap .
+
+map:om_002 rml:reference "count(preceding::*)+1" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_003 rdf:type rr:ObjectMap ;
+ rr:constant "http://data.europa.eu/a4g/ontology#Buyer" ;
+ rr:termType rr:IRI .
+
+map:om_004 rdf:type rr:ObjectMap ;
+ rr:parentTriplesMap map:map_buyerprofile_000 .
+
+map:om_005 rdf:type rr:ObjectMap ;
+ rr:parentTriplesMap map:map_organisation_000 .
+
+map:om_006 rdf:type rr:ObjectMap ;
+ rr:joinCondition map:jc_000 ;
+ rr:parentTriplesMap map:map_mainactivity_000 .
+
+map:om_007 map:fn_002 ;
+ rdf:type ;
+ rr:termType rr:IRI .
+
+map:om_008 map:fn_003 ;
+ rdf:type , rr:ObjectMap .
+
+map:om_009 rml:reference " /TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/CA_ACTIVITY/@VALUE" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_010 rdf:type rr:ObjectMap ;
+ rr:constant "http://publications.europa.eu/resource/authority/main-activity/OP_DATPRO" ;
+ rr:termType rr:IRI .
+
+map:om_011 rdf:type rr:ObjectMap ;
+ rr:joinCondition map:jc_001 ;
+ rr:parentTriplesMap map:map_buyerlegaltype_000 .
+
+map:om_012 rdf:type rr:ObjectMap ;
+ rr:template "http://data.europa.eu/a4g/resource/BuyerProfile/{replace(/TED_EXPORT/CODED_DATA_SECTION/NOTICE_DATA/NO_DOC_OJS, ' ', '-' )}/" ;
+ rr:termType rr:Literal .
+
+map:om_013 map:fn_005 ;
+ rdf:type , rr:ObjectMap .
+
+map:om_014 rml:reference "count(preceding::*)+1" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_015 rdf:type rr:ObjectMap ;
+ rr:constant "http://data.europa.eu/a4g/ontology#BuyerProfile" ;
+ rr:termType rr:IRI .
+
+map:om_016 rml:reference " /TED_EXPORT/FORM_SECTION/F03_2014/CONTRACTING_BODY/ADDRESS_CONTRACTING_BODY/URL_BUYER" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_017 rdf:type rr:ObjectMap ;
+ rr:template "http://data.europa.eu/a4g/resource/Organisation/{replace(/TED_EXPORT/CODED_DATA_SECTION/NOTICE_DATA/NO_DOC_OJS, ' ', '-' )}/" ;
+ rr:termType rr:Literal .
+
+map:om_018 map:fn_007 ;
+ rdf:type , rr:ObjectMap .
+
+map:om_019 rml:reference "count(preceding::*)+1" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_020 rdf:type rr:ObjectMap ;
+ rr:constant "http://data.europa.eu/a4g/ontology#Organisation" ;
+ rr:termType rr:IRI .
+
+map:om_021 rdf:type rr:ObjectMap ;
+ rr:parentTriplesMap map:map_contactPoint_000 .
+
+map:om_022 rdf:type rr:ObjectMap ;
+ rr:parentTriplesMap map:map_address_000 .
+
+map:om_023 rdf:type rr:ObjectMap ;
+ rr:parentTriplesMap map:map_organisationidentifier_000 .
+
+map:om_024 rml:reference "OFFICIALNAME" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_025 rdf:type rr:ObjectMap ;
+ rr:template "http://data.europa.eu/a4g/resource/OrganisationIdentifier/{replace(/TED_EXPORT/CODED_DATA_SECTION/NOTICE_DATA/NO_DOC_OJS, ' ', '-' )}/" ;
+ rr:termType rr:Literal .
+
+map:om_026 map:fn_009 ;
+ rdf:type , rr:ObjectMap .
+
+map:om_027 rml:reference "count(preceding::*)+1" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_028 rdf:type rr:ObjectMap ;
+ rr:constant "http://data.europa.eu/a4g/ontology#Identifier" ;
+ rr:termType rr:IRI .
+
+map:om_029 rml:reference "NATIONALID" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_030 rdf:type rr:ObjectMap ;
+ rr:template "http://data.europa.eu/a4g/resource/ContactPoint/{replace(/TED_EXPORT/CODED_DATA_SECTION/NOTICE_DATA/NO_DOC_OJS, ' ', '-' )}/" ;
+ rr:termType rr:Literal .
+
+map:om_031 map:fn_011 ;
+ rdf:type , rr:ObjectMap .
+
+map:om_032 rml:reference "count(preceding::*)+1" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_033 rdf:type rr:ObjectMap ;
+ rr:constant "http://data.europa.eu/a4g/ontology#ContactPoint" ;
+ rr:termType rr:IRI .
+
+map:om_034 rdf:type rr:ObjectMap ;
+ rr:parentTriplesMap map:map_channel_000 .
+
+map:om_035 rml:reference "E_MAIL" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_036 rml:reference "FAX" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_037 rml:reference "PHONE" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_038 rml:reference "CONTACT_POINT" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_039 rdf:type rr:ObjectMap ;
+ rr:template "http://data.europa.eu/a4g/resource/Channel/{replace(/TED_EXPORT/CODED_DATA_SECTION/NOTICE_DATA/NO_DOC_OJS, ' ', '-' )}/" ;
+ rr:termType rr:Literal .
+
+map:om_040 map:fn_013 ;
+ rdf:type , rr:ObjectMap .
+
+map:om_041 rml:reference "count(preceding::*)+1" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_042 rdf:type rr:ObjectMap ;
+ rr:constant "http://data.europa.eu/a4g/ontology#Channel" ;
+ rr:termType rr:IRI .
+
+map:om_043 rml:reference "URL_GENERAL" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_044 rdf:type rr:ObjectMap ;
+ rr:template "http://locn/ontology#Address/{replace(/TED_EXPORT/CODED_DATA_SECTION/NOTICE_DATA/NO_DOC_OJS, ' ', '-' )}/" ;
+ rr:termType rr:Literal .
+
+map:om_045 map:fn_015 ;
+ rdf:type , rr:ObjectMap .
+
+map:om_046 rml:reference "count(preceding::*)+1" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_047 rdf:type rr:ObjectMap ;
+ rr:constant "http://locn/ontology#Address" ;
+ rr:termType rr:IRI .
+
+map:om_048 rml:reference "TOWN" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_049 rml:reference "ADDRESS" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_050 rml:reference "POSTAL_CODE" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_051 rdf:type rr:ObjectMap ;
+ rr:joinCondition map:jc_002 ;
+ rr:parentTriplesMap map:map_nuts_000 .
+
+map:om_052 rdf:type rr:ObjectMap ;
+ rr:joinCondition map:jc_003 ;
+ rr:parentTriplesMap map:map_countries_000 .
+
+map:om_053 rdf:type rr:ObjectMap ;
+ rr:template "http://data.europa.eu/a4g/resource/ResultNotice/{replace(/TED_EXPORT/CODED_DATA_SECTION/NOTICE_DATA/NO_DOC_OJS, ' ', '-' )}/" ;
+ rr:termType rr:Literal .
+
+map:om_054 map:fn_017 ;
+ rdf:type , rr:ObjectMap .
+
+map:om_055 rml:reference "count(preceding::*)+1" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_056 rdf:type rr:ObjectMap ;
+ rr:constant "http://data.europa.eu/a4g/ontology#ResultNotice" ;
+ rr:termType rr:IRI .
+
+map:om_057 rdf:type rr:ObjectMap ;
+ rr:parentTriplesMap map:map_procedure_000 .
+
+map:om_058 rdf:type rr:ObjectMap ;
+ rr:parentTriplesMap map:map_lot_000 .
+
+map:om_059 rdf:type rr:ObjectMap ;
+ rr:parentTriplesMap map:map_buyer_000 .
+
+map:om_060 rdf:type rr:ObjectMap ;
+ rr:parentTriplesMap map:map_contractsignatoryoncontractorside_000 .
+
+map:om_061 rdf:type rr:ObjectMap ;
+ rr:parentTriplesMap map:map_contract_000 .
+
+map:om_062 rdf:type rr:ObjectMap ;
+ rr:parentTriplesMap map:map_submissionstatisticalinformation_000 .
+
+map:om_063 rdf:type rr:ObjectMap ;
+ rr:parentTriplesMap map:map_reviewer_000 .
+
+map:om_064 rdf:type rr:ObjectMap ;
+ rr:parentTriplesMap map:map_Mediator_000 .
+
+map:om_065 rdf:type rr:ObjectMap ;
+ rr:parentTriplesMap map:map_ReviewProcedureInformationProvider_000 .
+
+map:om_066 rdf:type rr:ObjectMap ;
+ rr:template "http://data.europa.eu/a4g/resource/AwardCriterionQuality/{replace(/TED_EXPORT/CODED_DATA_SECTION/NOTICE_DATA/NO_DOC_OJS, ' ', '-' )}/" ;
+ rr:termType rr:Literal .
+
+map:om_067 map:fn_019 ;
+ rdf:type , rr:ObjectMap .
+
+map:om_068 rml:reference "count(preceding::*)+1" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_069 rdf:type rr:ObjectMap ;
+ rr:constant "http://data.europa.eu/a4g/ontology#AwardCriterion" ;
+ rr:termType rr:IRI .
+
+map:om_070 rdf:type rr:ObjectMap ;
+ rr:parentTriplesMap map:map_lot_000 .
+
+map:om_071 rdf:type rr:ObjectMap ;
+ rr:constant "http://publications.europa.eu/resource/authority/award-criterion-type/quality" ;
+ rr:termType rr:IRI .
+
+map:om_072 rml:reference "AC_CRITERION" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_073 rml:reference "AC_WEIGHTING" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_074 rdf:type rr:ObjectMap ;
+ rr:template "http://data.europa.eu/a4g/resource/AwardCriterionPrice/{replace(/TED_EXPORT/CODED_DATA_SECTION/NOTICE_DATA/NO_DOC_OJS, ' ', '-' )}/" ;
+ rr:termType rr:Literal .
+
+map:om_075 map:fn_021 ;
+ rdf:type , rr:ObjectMap .
+
+map:om_076 rml:reference "count(preceding::*)+1" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_077 rdf:type rr:ObjectMap ;
+ rr:constant "http://data.europa.eu/a4g/ontology#AwardCriterion" ;
+ rr:termType rr:IRI .
+
+map:om_078 rdf:type rr:ObjectMap ;
+ rr:parentTriplesMap map:map_lot_000 .
+
+map:om_079 rdf:type rr:ObjectMap ;
+ rr:constant "http://publications.europa.eu/resource/authority/award-criterion-type/price" ;
+ rr:termType rr:IRI .
+
+map:om_080 rml:reference "AC_CRITERION" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_081 rml:reference "AC_WEIGHTING" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_082 rdf:type rr:ObjectMap ;
+ rr:template "http://data.europa.eu/a4g/resource/AwardCriterionCost/{replace(/TED_EXPORT/CODED_DATA_SECTION/NOTICE_DATA/NO_DOC_OJS, ' ', '-' )}/" ;
+ rr:termType rr:Literal .
+
+map:om_083 map:fn_023 ;
+ rdf:type , rr:ObjectMap .
+
+map:om_084 rml:reference "count(preceding::*)+1" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_085 rdf:type rr:ObjectMap ;
+ rr:constant "http://data.europa.eu/a4g/ontology#AwardCriterion" ;
+ rr:termType rr:IRI .
+
+map:om_086 rdf:type rr:ObjectMap ;
+ rr:parentTriplesMap map:map_lot_000 .
+
+map:om_087 rdf:type rr:ObjectMap ;
+ rr:constant "http://publications.europa.eu/resource/authority/award-criterion-type/price" ;
+ rr:termType rr:IRI .
+
+map:om_088 rml:reference "AC_CRITERION" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_089 rml:reference "AC_WEIGHTING" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_090 rdf:type rr:ObjectMap ;
+ rr:template "http://data.europa.eu/a4g/resource/Procedure/{replace(/TED_EXPORT/CODED_DATA_SECTION/NOTICE_DATA/NO_DOC_OJS, ' ', '-' )}/" ;
+ rr:termType rr:Literal .
+
+map:om_091 map:fn_025 ;
+ rdf:type , rr:ObjectMap .
+
+map:om_092 rml:reference "count(preceding::*)+1" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_093 rdf:type rr:ObjectMap ;
+ rr:constant "http://data.europa.eu/a4g/ontology#Procedure" ;
+ rr:termType rr:IRI .
+
+map:om_094 rml:reference "TITLE" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_095 rdf:type rr:ObjectMap ;
+ rr:parentTriplesMap map:map_purpose_000 .
+
+map:om_096 rdf:type rr:ObjectMap ;
+ rr:parentTriplesMap map:map_monetaryvalue_000 .
+
+map:om_097 rml:reference "SHORT_DESCR" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_098 rdf:type rr:ObjectMap ;
+ rr:parentTriplesMap map:map_procedureidentifier_000 .
+
+map:om_099 rdf:type rr:ObjectMap ;
+ rr:parentTriplesMap map:map_lot_000 .
+
+map:om_100 rdf:type rr:ObjectMap ;
+ rr:parentTriplesMap map:map_competionnotice_000 .
+
+map:om_101 map:fn_026 ;
+ rdf:type ;
+ rr:termType rr:IRI .
+
+map:om_102 map:fn_027 ;
+ rdf:type , rr:ObjectMap .
+
+map:om_103 map:fn_028 ;
+ rdf:type , rr:ObjectMap .
+
+map:om_104 rml:reference "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_OPEN" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_105 rdf:type rr:ObjectMap ;
+ rr:constant "http://publications.europa.eu/resource/authority/procurement-procedure-type/open" ;
+ rr:termType rr:IRI .
+
+map:om_106 map:fn_029 ;
+ rdf:type ;
+ rr:termType rr:IRI .
+
+map:om_107 map:fn_030 ;
+ rdf:type , rr:ObjectMap .
+
+map:om_108 map:fn_031 ;
+ rdf:type , rr:ObjectMap .
+
+map:om_109 rml:reference "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_RESTRICTED" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_110 rdf:type rr:ObjectMap ;
+ rr:constant "http://publications.europa.eu/resource/authority/procurement-procedure-type/restricted" ;
+ rr:termType rr:IRI .
+
+map:om_111 map:fn_032 ;
+ rdf:type ;
+ rr:termType rr:IRI .
+
+map:om_112 map:fn_033 ;
+ rdf:type , rr:ObjectMap .
+
+map:om_113 map:fn_034 ;
+ rdf:type , rr:ObjectMap .
+
+map:om_114 rml:reference "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_COMPETITIVE_NEGOTIATION" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_115 rdf:type rr:ObjectMap ;
+ rr:constant "http://publications.europa.eu/resource/authority/procurement-procedure-type/neg-w-call" ;
+ rr:termType rr:IRI .
+
+map:om_116 map:fn_035 ;
+ rdf:type ;
+ rr:termType rr:IRI .
+
+map:om_117 map:fn_036 ;
+ rdf:type , rr:ObjectMap .
+
+map:om_118 map:fn_037 ;
+ rdf:type , rr:ObjectMap .
+
+map:om_119 rml:reference "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_COMPETITIVE_DIALOGUE" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_120 rdf:type rr:ObjectMap ;
+ rr:constant "http://publications.europa.eu/resource/authority/procurement-procedure-type/comp-dial" ;
+ rr:termType rr:IRI .
+
+map:om_121 map:fn_038 ;
+ rdf:type ;
+ rr:termType rr:IRI .
+
+map:om_122 map:fn_039 ;
+ rdf:type , rr:ObjectMap .
+
+map:om_123 map:fn_040 ;
+ rdf:type , rr:ObjectMap .
+
+map:om_124 rml:reference "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_INNOVATION_PARTNERSHIP" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_125 rdf:type rr:ObjectMap ;
+ rr:constant "http://publications.europa.eu/resource/authority/procurement-procedure-type/innovation" ;
+ rr:termType rr:IRI .
+
+map:om_126 map:fn_041 ;
+ rdf:type ;
+ rr:termType rr:IRI .
+
+map:om_127 map:fn_042 ;
+ rdf:type , rr:ObjectMap .
+
+map:om_128 map:fn_043 ;
+ rdf:type , rr:ObjectMap .
+
+map:om_129 rml:reference "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/PT_AWARD_CONTRACT_WITHOUT_CALL" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_130 rdf:type rr:ObjectMap ;
+ rr:constant "http://publications.europa.eu/resource/authority/procurement-procedure-type/neg-wo-call" ;
+ rr:termType rr:IRI .
+
+map:om_131 map:fn_044 ;
+ rdf:type ;
+ rr:datatype xsd:boolean ;
+ rr:termType rr:Literal .
+
+map:om_132 map:fn_045 ;
+ rdf:type , rr:ObjectMap .
+
+map:om_133 rml:reference "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/ACCELERATED_PROC" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_134 rml:reference "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/ACCELERATED_PROC/P" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_135 map:fn_046 ;
+ rdf:type ;
+ rr:datatype xsd:boolean ;
+ rr:termType rr:Literal .
+
+map:om_136 map:fn_047 ;
+ rdf:type , rr:ObjectMap .
+
+map:om_137 rml:reference "/TED_EXPORT/FORM_SECTION/F03_2014/PROCEDURE/TERMINATION_PIN" ;
+ rdf:type rr:ObjectMap ;
+ rr:termType rr:Literal .
+
+map:om_138 map:fn_048 ;
+ rdf:type ;
+ rr:datatype xsd:boolean ;
+ rr:termType rr:Literal .
+
+map:om_139 map:fn_049 ;
+ rdf:type