def column(self, key, content=False): i = key if type(key) is int else self.columnNames.index(key) try: return [sparql.cellContent(row[i]) if content else row[i] for row in self.rows] except IndexError as inst: print(str(type(inst))) print(inst.args) return []
def predicatesForKeyColumn(self): """generate a dictionary containing all predicates for each entity in the key-column with their predicates""" subjects = [] for subject in self.columns[self.key]: subjCell = sparql.cellContent(subject) subjects.append([subjCell, sparql.predicates(subjCell)]) return subjects
def predicatesForColumns(self, subColumn, objColumn, relative=True): """Return all predicates with subColumn's cells as subjects and objColumn's cells as objects. Set 'relative' to True if you want relative occurances.""" subData = self.column(subColumn) objData = self.column(objColumn) predicates = {} for i in range(0, len(subData)): subContent = sparql.cellContent(subData[i]) objContent = sparql.cellContent(objData[i]) if not (objContent and sparql.isResource(subContent)): continue for predicate in sparql.predicates(subContent, objContent): if predicate in predicates: predicates[predicate] += 1 else: predicates[predicate] = 1 if relative: for p in predicates: predicates[p] = round(predicates[p]/len(subData), 2) return predicates