示例#1
0
    def transform(self, graph):
        """
        Transforms a 'pure' nominal range into a disjunction of value
        restrictions
        """
        Individual.factoryGraph = graph
        for restriction, intermediateCl, nominal, prop in graph.query(
                                 self.NOMINAL_QUERY,
                                 initNs={'owl': OWL_NS}):
            nominalCollection = Collection(graph, nominal)
            # purge restriction
            restr = Class(restriction)
            parentSets = [i for i in restr.subClassOf]
            restr.clearOutDegree()
            newConjunct = BooleanClass(restriction,
                                     OWL_NS.unionOf,
                                     [Property(prop) | value | val
                                                 for val in nominalCollection],
                                     graph)
            newConjunct.subClassOf = parentSets

            # purge nominalization placeholder
            iClass = BooleanClass(intermediateCl)
            iClass.clear()
            iClass.delete()
示例#2
0
    def transform(self, graph):
        """
        Transforms a 'pure' nominal range into a disjunction of value restrictions
        """
        Individual.factoryGraph = graph
        for restriction, intermediateCl, nominal, prop in graph.query(
                self.NOMINAL_QUERY, initNs={u'owl': OWL_NS}):
            nominalCollection = Collection(graph, nominal)
            #purge restriction
            restr = Class(restriction)
            parentSets = [i for i in restr.subClassOf]
            restr.clearOutDegree()
            newConjunct = BooleanClass(
                restriction, OWL_NS.unionOf,
                [Property(prop) | value | val
                 for val in nominalCollection], graph)
            newConjunct.subClassOf = parentSets

            #purge nominalization placeholder
            iClass = BooleanClass(intermediateCl)
            iClass.clear()
            iClass.delete()