Source code for PyOpenWorm.data_trans.data_with_evidence_ds

from rdflib.namespace import Namespace
from PyOpenWorm.context import Context
from PyOpenWorm.datasource import Informational, DataSource
from PyOpenWorm import CONTEXT
from .common_data import DS_NS


[docs]class DataWithEvidenceDataSource(DataSource): evidence_context_property = Informational(display_name='Evidence context', property_name='evidence_context', description='The context in which evidence for the "Data context" is defined') data_context_property = Informational(display_name='Data context', property_name='data_context', description='The context in which primary data for this data source is defined') rdf_namespace = Namespace(DS_NS['DataWithEvidenceDataSource#']) def __init__(self, *args, **kwargs): super(DataWithEvidenceDataSource, self).__init__(*args, **kwargs) self.data_context = Context.contextualize(self.context)(ident=self.identifier + '-data', imported=(CONTEXT,)) self.evidence_context = Context.contextualize(self.context)(ident=self.identifier + '-evidence', imported=(CONTEXT,)) self.data_context_property(self.data_context.rdf_object) self.evidence_context_property(self.evidence_context.rdf_object) self.contexts = [] self.__ad_hoc_contexts = dict() def data_context_for(self, **kwargs): ctx = self.context_for(**kwargs) self.data_context.add_import(ctx) return ctx def context_for(self, **kwargs): key = "&".join(k + "=" + kwargs[k].identifier for k in sorted(kwargs.keys())) res = self.__ad_hoc_contexts.get(key) if res is None: ctxid = self.identifier + '/context_for?' + key self.__ad_hoc_contexts[key] = Context.contextualize(self.context)(ident=ctxid) res = self.__ad_hoc_contexts[key] return res
__yarom_mapped_classes__ = (DataWithEvidenceDataSource,)