Exemple #1
0
    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