def search_by_property(self, name): things = [] with GenericSQLDatabase(self.name, self.path) as db: for prop in db.query(MrDataSQLProperty).filter_by(name=name).all(): things += prop.things things = [t.as_json() for t in things] return things
def as_sql(self, query, name, path=None): """ search triples and export result in sql db""" from mister_data.store.sql import GenericSQLDatabase with GenericSQLDatabase(name, path) as db: triples = self.triples(query) for thing, prop, value in triples: t = db.add_thing(thing) p = db.add_property(prop, value=value) t.properties.append(p) return db
def as_sql(self, query, name=None, path=None): """ search triples and export result in sql db""" name = name or query with GenericSQLDatabase(name, path) as db: triples = self.inspector.triples(query) for triple in triples: thing = triple["subject"]["value"] prop = triple["predicate"]["value"] value = triple["object"]["value"] t = db.add_thing(thing) p = db.add_property(prop, value=value) t.properties.append(p) return db
def search_by_id(self, thing_id): with GenericSQLDatabase(self.name, self.path) as db: return db.query(MrDataSQLThing).filter_by( id=thing_id).one().as_json()
def search_by_type(self, thing_type): with GenericSQLDatabase(self.name, self.path) as db: return [ a.as_json() for a in db.query(MrDataSQLThing).filter_by( type=thing_type).all() ]
def total_things(self): with GenericSQLDatabase(self.name, self.path) as db: return db.session.query(MrDataSQLThing).count()
def query(self, query): with GenericSQLDatabase(self.name, self.path) as db: return [a.as_json() for a in db.session.query(query)]
def from_sql(self, sql_db=None): with sql_db or GenericSQLDatabase(self.name, self.path) as db: self._triples = sql_db.as_triples() return self
def as_sql(self): return GenericSQLDatabase(self.name, self.path).from_triples(self._triples)