def __init__(self, configuration=None, identifier=None): IOMemory.__init__(self, configuration, identifier) self.__namespace = OrderedDict() #{} self.__prefix = OrderedDict() #{} # Mappings for encoding RDF nodes using integer keys, to save memory # in the indexes Note that None is always mapped to itself, to make # it easy to test for it in either encoded or unencoded form. #self.__int2obj = {None: None} # maps integer keys to objects #self.__obj2int = {None: None} # maps objects to integer keys self.__int2obj = OrderedDict() self.__int2obj[None] = None self.__obj2int = OrderedDict() self.__obj2int[None] = None # Indexes for each triple part, and a list of contexts for each triple self.__subjectIndex = OrderedDict() #{} # key: sid val: set(enctriples) self.__predicateIndex = OrderedDict() #{} # key: pid val: set(enctriples) self.__objectIndex = OrderedDict() #{} # key: oid val: set(enctriples) self.__tripleContexts = OrderedDict() #{} # key: enctriple val: {cid1: quoted, cid2: quoted ...} #self.__contextTriples = {None: set()} # key: cid val: set(enctriples) self.__contextTriples = OrderedDict() self.__contextTriples[None] = OrderedSet() # all contexts used in store (unencoded) self.__all_contexts = OrderedSet() #set() # default context information for triples self.__defaultContexts = None