Esempio n. 1
0
 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 []
Esempio n. 2
0
    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
Esempio n. 3
0
    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