Esempio n. 1
0
def translate_value(session, _segment, _value_node, _value):
    """Setup value \p _value to \p _value_node
    @return: Return list of creates sc-elements
    """   
    v_node = sc_utils.createNodeElement(session, _segment, sc.SC_CONST)
    bin_pair = sc_utils.createPairBinaryOrientFull(session, _segment, v_node, _value_node, sc.SC_CONST)
    a = sc_utils.createPairPosPerm(session, _segment, keynodes.common.nrel_value, bin_pair[0], sc.SC_CONST)
    
    res = [v_node, a, keynodes.common.nrel_value]
    res.extend(bin_pair) 
    
    vu_node = sc_utils.createNodeElement(session, _segment, sc.SC_CONST)
    a = sc_utils.createPairPosPerm(session, _segment, v_node, vu_node, sc.SC_CONST)
    
    res.extend([vu_node, a])
    
    # make identification
    idtf_node = sc_utils.createNodeSheaf(session, _segment, sc.SC_CONST)
    bin_pair = sc_utils.createPairBinaryOrientFull(session, _segment, idtf_node, vu_node, sc.SC_CONST)
    a = sc_utils.createPairPosPerm(session, _segment, keynodes.common.nrel_identification, bin_pair[0], sc.SC_CONST)
    
    res.extend([idtf_node, a, keynodes.common.nrel_identification])
    res.extend(bin_pair)
    
    # set value
    val = sc_utils.createNodeElement(session, _segment, sc.SC_CONST)
    sc_utils.setContentReal(session, _segment, val, _value)
    a = sc_utils.createPairPosPerm(session, _segment, idtf_node, val, sc.SC_CONST)
    a1 = sc_utils.createPairPosPerm(session, _segment, keynodes.common.rrel_dec_number, a, sc.SC_CONST)
    
    res.extend([val, a, a1, keynodes.common.rrel_dec_number])
    
    return res
Esempio n. 2
0
def translate_value(_segment, _value_node, _value):

    session = core.Kernel.session()

    v_node = sc_utils.createNodeElement(session, _segment, sc.SC_CONST)
    sheaf = sc_utils.createPairBinaryOrient(session, _segment, v_node,
                                            _value_node, sc.SC_CONST)
    sc_utils.createPairPosPerm(session, _segment, keynodes.common.nrel_value,
                               sheaf, sc.SC_CONST)

    vu_node = sc_utils.createNodeElement(session, _segment, sc.SC_CONST)
    a = sc_utils.createPairPosPerm(session, _segment, v_node, vu_node,
                                   sc.SC_CONST)
    sc_utils.createPairPosPerm(session, _segment,
                               geom_keynodes.Relation.rrel_cm2, a, sc.SC_CONST)

    # make identification
    idtf_node = sc_utils.createNodeSheaf(session, _segment, sc.SC_CONST)
    sheaf = sc_utils.createPairBinaryOrient(session, _segment, idtf_node,
                                            vu_node, sc.SC_CONST)
    sc_utils.createPairPosPerm(session, _segment,
                               keynodes.common.nrel_identification, sheaf,
                               sc.SC_CONST)

    # set value
    val = sc_utils.createNodeElement(session, _segment, sc.SC_CONST)
    sc_utils.setContentReal(session, _segment, val, _value)
    a = sc_utils.createPairPosPerm(session, _segment, idtf_node, val,
                                   sc.SC_CONST)
    sc_utils.createPairPosPerm(session, _segment,
                               keynodes.common.rrel_dec_number, a, sc.SC_CONST)
Esempio n. 3
0
    def makeScGraph(self):
        """Construct sc representation of netwokX graph
        @return: Return sc_addr of structure, that include all elements of generated sc-graph construction
        """
        assert self.graphSc is None
        assert self.graphNx is not None
               
        _session = core.Kernel.session()
        
        result = sc_utils.createNode(_session, self.segment, sc.SC_CONST, "element")

        self.graphSc = sc_utils.createNode(_session, self.segment, sc.SC_CONST, "struct")
        a = sc_utils.createPairPosPerm(_session, self.segment, graph_keynodes.Common.graph, self.graphSc, sc.SC_CONST)
        
        res_list = [self.graphSc, a]
        nx2sc = {}
        
        # create all nodes
        for node in self.graphNx.nodes():
            
            sc_node = sc_utils.createNode(_session, self.segment, sc.SC_CONST, "element")
            nx2sc[node] = sc_node
            # append into graph with vertex attribute
            a = sc_utils.createPairPosPerm(_session, self.segment, self.graphSc, sc_node, sc.SC_CONST)
            a1 = sc_utils.createPairPosPerm(_session, self.segment, graph_keynodes.Common.rrel_vertex, a, sc.SC_CONST)
            
            res_list.extend([sc_node, a, a1])
            
        # create edges
        for edge in self.graphNx.edges():
            
            sc_edge = sc_utils.createNodeSheaf(_session, self.segment, sc.SC_CONST)
            
            # append into graph with edge attribute
            a = sc_utils.createPairPosPerm(_session, self.segment, self.graphSc, sc_edge, sc.SC_CONST)
            a1 = sc_utils.createPairPosPerm(_session, self.segment, graph_keynodes.Common.rrel_edge, a, sc.SC_CONST)
            
            # setup begin and end objects
            beg, end = edge
            a2 = sc_utils.createPairPosPerm(_session, self.segment, sc_edge, nx2sc[beg], sc.SC_CONST)
            a3 = sc_utils.createPairPosPerm(_session, self.segment, sc_edge, nx2sc[end], sc.SC_CONST)
        
            res_list.extend([sc_edge, a, a1, a2, a3])
            
        res_list.extend([graph_keynodes.Common.rrel_edge, 
                         graph_keynodes.Common.rrel_vertex, 
                         graph_keynodes.Common.graph
                         ])
        # create result set
        for r in res_list:
            sc_utils.createPairPosPerm(_session, self.segment, result, r, sc.SC_CONST)
            
        return result
Esempio n. 4
0
def translate_value(session, _segment, _value_node, _value):
    """Setup value \p _value to \p _value_node
    @return: Return list of creates sc-elements
    """
    v_node = sc_utils.createNodeElement(session, _segment, sc.SC_CONST)
    bin_pair = sc_utils.createPairBinaryOrientFull(session, _segment, v_node,
                                                   _value_node, sc.SC_CONST)
    a = sc_utils.createPairPosPerm(session, _segment,
                                   keynodes.common.nrel_value, bin_pair[0],
                                   sc.SC_CONST)

    res = [v_node, a, keynodes.common.nrel_value]
    res.extend(bin_pair)

    vu_node = sc_utils.createNodeElement(session, _segment, sc.SC_CONST)
    a = sc_utils.createPairPosPerm(session, _segment, v_node, vu_node,
                                   sc.SC_CONST)

    res.extend([vu_node, a])

    # make identification
    idtf_node = sc_utils.createNodeSheaf(session, _segment, sc.SC_CONST)
    bin_pair = sc_utils.createPairBinaryOrientFull(session, _segment,
                                                   idtf_node, vu_node,
                                                   sc.SC_CONST)
    a = sc_utils.createPairPosPerm(session, _segment,
                                   keynodes.common.nrel_identification,
                                   bin_pair[0], sc.SC_CONST)

    res.extend([idtf_node, a, keynodes.common.nrel_identification])
    res.extend(bin_pair)

    # set value
    val = sc_utils.createNodeElement(session, _segment, sc.SC_CONST)
    sc_utils.setContentReal(session, _segment, val, _value)
    a = sc_utils.createPairPosPerm(session, _segment, idtf_node, val,
                                   sc.SC_CONST)
    a1 = sc_utils.createPairPosPerm(session, _segment,
                                    keynodes.common.rrel_dec_number, a,
                                    sc.SC_CONST)

    res.extend([val, a, a1, keynodes.common.rrel_dec_number])

    return res
Esempio n. 5
0
def translate_value(_segment, _value_node, _value):
    
    session = core.Kernel.session()
    
    v_node = sc_utils.createNodeElement(session, _segment, sc.SC_CONST)
    sheaf = sc_utils.createPairBinaryOrient(session, _segment, v_node, _value_node, sc.SC_CONST)
    sc_utils.createPairPosPerm(session, _segment, keynodes.common.nrel_value, sheaf, sc.SC_CONST)
    
    vu_node = sc_utils.createNodeElement(session, _segment, sc.SC_CONST)
    a = sc_utils.createPairPosPerm(session, _segment, v_node, vu_node, sc.SC_CONST)
    sc_utils.createPairPosPerm(session, _segment, geom_keynodes.Relation.rrel_cm2, a, sc.SC_CONST)
    
    # make identification
    idtf_node = sc_utils.createNodeSheaf(session, _segment, sc.SC_CONST)
    sheaf = sc_utils.createPairBinaryOrient(session, _segment, idtf_node, vu_node, sc.SC_CONST)
    sc_utils.createPairPosPerm(session, _segment, keynodes.common.nrel_identification, sheaf, sc.SC_CONST)
    
    # set value
    val = sc_utils.createNodeElement(session, _segment, sc.SC_CONST)
    sc_utils.setContentReal(session, _segment, val, _value)
    a = sc_utils.createPairPosPerm(session, _segment, idtf_node, val, sc.SC_CONST)
    sc_utils.createPairPosPerm(session, _segment, keynodes.common.rrel_dec_number, a, sc.SC_CONST)
Esempio n. 6
0
    def translate_impl(self, _input, _output):
        """Translator implementation
        """
        # translating objects
        objs = objects.ScObject._sc2Objects(_input)
        
        assert len(objs) > 0
        sheet = objs[0]
        assert type(sheet) is objects.ObjectSheet
    
        segment = sheet.getTmpSegment()
    
        errors = []
        session = core.Kernel.session()
    
        # getting objects, that need to be translated
        trans_obj = []
        for obj in sheet.getChilds():
            _addr = obj._getScAddr()
            if _addr is None:
                trans_obj.append(obj)
                # remove old translation data
            else:
                if _addr.seg == segment:
                    obj._setScAddr(None)
                    #session.erase_el(_addr)
                    trans_obj.append(obj)
                

        # sort objects to nodes and edges
        verticies = []
        edges = []
        
        for obj in trans_obj:
            
            if isinstance(obj, graph_objects.GraphVertex):
                verticies.append(obj)
            elif isinstance(obj, graph_objects.GraphLink):
                edges.append(obj)
                
        
        graph = sc_utils.createNode(session, segment, sc.SC_CONST, "struct")
        sc_utils.createPairPosPerm(session, segment, graph_keynodes.Common.graph, graph, sc.SC_CONST)        
        
        # create all nodes
        for node in verticies:
            
            sc_node = sc_utils.createNode(session, segment, sc.SC_CONST, "element")
            node._setScAddr(sc_node)
            # append into graph with vertex attribute
            a = sc_utils.createPairPosPerm(session, segment, graph, sc_node, sc.SC_CONST)
            a1 = sc_utils.createPairPosPerm(session, segment, graph_keynodes.Common.rrel_vertex, a, sc.SC_CONST)
                        
        # create edges
        for edge in edges:
            
            sc_edge = sc_utils.createNodeSheaf(session, segment, sc.SC_CONST)
            
            # append into graph with edge attribute
            a = sc_utils.createPairPosPerm(session, segment, graph, sc_edge, sc.SC_CONST)
            a1 = sc_utils.createPairPosPerm(session, segment, graph_keynodes.Common.rrel_edge, a, sc.SC_CONST)
            
            # setup begin and end objects
            beg = edge.getBegin()._getScAddr()
            end = edge.getEnd()._getScAddr()
            
            a2 = sc_utils.createPairPosPerm(session, segment, sc_edge, beg, sc.SC_CONST)
            a3 = sc_utils.createPairPosPerm(session, segment, sc_edge, end, sc.SC_CONST)
            
            edge._setScAddr(sc_edge)

                
        print "Translation errors:"    
        for obj, error in errors:
            print error 

        return errors
Esempio n. 7
0
    def makeScGraph(self):
        """Construct sc representation of netwokX graph
        @return: Return sc_addr of structure, that include all elements of generated sc-graph construction
        """
        assert self.graphSc is None
        assert self.graphNx is not None

        _session = core.Kernel.session()

        result = sc_utils.createNode(_session, self.segment, sc.SC_CONST,
                                     "element")

        self.graphSc = sc_utils.createNode(_session, self.segment, sc.SC_CONST,
                                           "struct")
        a = sc_utils.createPairPosPerm(_session, self.segment,
                                       graph_keynodes.Common.graph,
                                       self.graphSc, sc.SC_CONST)

        res_list = [self.graphSc, a]
        nx2sc = {}

        # create all nodes
        for node in self.graphNx.nodes():

            sc_node = sc_utils.createNode(_session, self.segment, sc.SC_CONST,
                                          "element")
            nx2sc[node] = sc_node
            # append into graph with vertex attribute
            a = sc_utils.createPairPosPerm(_session, self.segment,
                                           self.graphSc, sc_node, sc.SC_CONST)
            a1 = sc_utils.createPairPosPerm(_session, self.segment,
                                            graph_keynodes.Common.rrel_vertex,
                                            a, sc.SC_CONST)

            res_list.extend([sc_node, a, a1])

        # create edges
        for edge in self.graphNx.edges():

            sc_edge = sc_utils.createNodeSheaf(_session, self.segment,
                                               sc.SC_CONST)

            # append into graph with edge attribute
            a = sc_utils.createPairPosPerm(_session, self.segment,
                                           self.graphSc, sc_edge, sc.SC_CONST)
            a1 = sc_utils.createPairPosPerm(_session, self.segment,
                                            graph_keynodes.Common.rrel_edge, a,
                                            sc.SC_CONST)

            # setup begin and end objects
            beg, end = edge
            a2 = sc_utils.createPairPosPerm(_session, self.segment, sc_edge,
                                            nx2sc[beg], sc.SC_CONST)
            a3 = sc_utils.createPairPosPerm(_session, self.segment, sc_edge,
                                            nx2sc[end], sc.SC_CONST)

            res_list.extend([sc_edge, a, a1, a2, a3])

        res_list.extend([
            graph_keynodes.Common.rrel_edge, graph_keynodes.Common.rrel_vertex,
            graph_keynodes.Common.graph
        ])
        # create result set
        for r in res_list:
            sc_utils.createPairPosPerm(_session, self.segment, result, r,
                                       sc.SC_CONST)

        return result
Esempio n. 8
0
    def translate_impl(self, _input, _output):
        """Translator implementation
        """
        # translating objects
        objs = objects.ScObject._sc2Objects(_input)

        assert len(objs) > 0
        sheet = objs[0]
        assert type(sheet) is objects.ObjectSheet

        segment = sheet.getTmpSegment()

        errors = []
        session = core.Kernel.session()

        # getting objects, that need to be translated
        trans_obj = []
        for obj in sheet.getChilds():
            _addr = obj._getScAddr()
            if _addr is None:
                trans_obj.append(obj)
                # remove old translation data
            else:
                if _addr.seg == segment:
                    obj._setScAddr(None)
                    #session.erase_el(_addr)
                    trans_obj.append(obj)

        # sort objects to nodes and edges
        verticies = []
        edges = []

        for obj in trans_obj:

            if isinstance(obj, graph_objects.GraphVertex):
                verticies.append(obj)
            elif isinstance(obj, graph_objects.GraphLink):
                edges.append(obj)

        graph = sc_utils.createNode(session, segment, sc.SC_CONST, "struct")
        sc_utils.createPairPosPerm(session, segment,
                                   graph_keynodes.Common.graph, graph,
                                   sc.SC_CONST)

        # create all nodes
        for node in verticies:

            sc_node = sc_utils.createNode(session, segment, sc.SC_CONST,
                                          "element")
            node._setScAddr(sc_node)
            # append into graph with vertex attribute
            a = sc_utils.createPairPosPerm(session, segment, graph, sc_node,
                                           sc.SC_CONST)
            a1 = sc_utils.createPairPosPerm(session, segment,
                                            graph_keynodes.Common.rrel_vertex,
                                            a, sc.SC_CONST)

        # create edges
        for edge in edges:

            sc_edge = sc_utils.createNodeSheaf(session, segment, sc.SC_CONST)

            # append into graph with edge attribute
            a = sc_utils.createPairPosPerm(session, segment, graph, sc_edge,
                                           sc.SC_CONST)
            a1 = sc_utils.createPairPosPerm(session, segment,
                                            graph_keynodes.Common.rrel_edge, a,
                                            sc.SC_CONST)

            # setup begin and end objects
            beg = edge.getBegin()._getScAddr()
            end = edge.getEnd()._getScAddr()

            a2 = sc_utils.createPairPosPerm(session, segment, sc_edge, beg,
                                            sc.SC_CONST)
            a3 = sc_utils.createPairPosPerm(session, segment, sc_edge, end,
                                            sc.SC_CONST)

            edge._setScAddr(sc_edge)

        print "Translation errors:"
        for obj, error in errors:
            print error

        return errors