def addDir(self, dirPath): """add description of this disk directory and every parent directory""" if not dirPath.startswith(self.topDir): raise ValueError("%s is not in %s" % (dirPath, self.topDir)) dirUri = uriOfFilename(self.rootUri, self.topDir, dirPath) dirUri = URIRef(dirUri.rstrip('/') + '/') stmts = [(dirUri, RDF.type, PHO['DiskDirectory']), (dirUri, PHO['filename'], Literal(dirPath)), (dirUri, PHO['basename'], Literal(os.path.basename(dirPath)))] try: parentUri = self.addDir(os.path.dirname(dirPath)) stmts.append((dirUri, PHO.inDirectory, parentUri)) except ValueError: pass self.graph.add(triples=stmts, context=URIRef("http://photo.bigasterisk.com/scan/fs")) return dirUri