def dispatch_one(self, method, params): """ Dispatches a single method call. """ params = map(to_unicode, params) method = self._getFunc(method) result = method(*params) # The DB must be flushed after each call so that data from # one call is available to the subsequent calls. db.flush() # rpcify must be called after the flush so that persistant # objects which have just been created will get an id return rpcify(result)
def add_data(self): from pyols.model import * ns = Namespace(name=u"testns") for kw in (u"kw0", u"kw1", u"kw2"): setattr(self, kw, Keyword.new(name=kw, namespace=ns)) for rel in (u"rel0", u"rel1"): setattr(self, rel, Relation.new(name=rel, namespace=ns)) self.kwr0 = KeywordRelationship.new(left=self.kw0, relation=self.rel0, right=self.kw1) self.kwr1 = KeywordRelationship.new(left=self.kw0, relation=self.rel1, right=self.kw1) self.kwr2 = KeywordRelationship.new(left=self.kw1, relation=self.rel0, right=self.kw0) self.kwa0 = KeywordAssociation.new(keyword=self.kw0, path=u"kwa0") self.kwa1 = KeywordAssociation.new(keyword=self.kw2, path=u"kwa1") self.ns = ns db.flush()
def importOWL(ot, owl_data): """ Import OWL data 'owl_data' into the ontology. Note that it is possible that existing data will be silently overwritten with the new data. """ owl_data = StringIO(owl_data) oi = OWLImporter(owl_data) oi.importClasses() oi.importProperties() for rel in oi.getRelations(): ot.addRelation(**rel) db.flush() for kw in oi.getKeywords(): ot.addKeyword(**kw) db.flush() for kwr in oi.getKeywordRelationshps(): ot.addKeywordRelationship(*kwr) db.flush()