Ejemplo n.º 1
0
    def __init__(self):
        QtWidgets.QMainWindow.__init__(self)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        self.ontology_name = getOntologyName(task="task_entity_generation")
        self.ontology_dir = DIRECTORIES[
            "ontology_location"] % self.ontology_name
        self.ontology_file = FILES["ontology_file"] % self.ontology_name

        roundButton(self.ui.pushInfo, "info", tooltip="information")
        roundButton(self.ui.pushSave,
                    "save",
                    tooltip="save ProMo base ontology")
        roundButton(self.ui.pushGraphNode, "dot_graph", tooltip="show graph")

        checkAndFixResources(self.ontology_name, stage="ontology_stage_2")

        self.ontology_container = OntologyContainer(self.ontology_name)
        self.incidence_dictionary, self.inv_incidence_dictionary = makeIncidenceDictionaries(
            self.ontology_container.variables)

        self.reduced_network_node_list = self.ontology_container.list_reduced_network_node_objects  #__makeNodeLists()
        self.reduced_arc_list = self.ontology_container.list_reduced_network_arc_objects  # self.__makeArcLists()

        self.radio_selectors = {}
        self.__makeCombosNetworks()

        self.current_equation_IDs = {
        }  # hash: radio button index     value: equation_ID_str
        self.ui.tabWidget.setCurrentIndex(0)
        self.current_tab = 0
        self.tabs = ["node", "arc", "intra", "inter"]

        self.selected_node = None
        self.selected_arc = None
        self.selected_intra = None
        self.selected_inter = None
        self.selected_arc_network = None
        self.selected_node_network = None

        self.assignments = {}

        self.__makeEquationList()
Ejemplo n.º 2
0
    def __init__(self):
        QtWidgets.QMainWindow.__init__(self)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        roundButton(self.ui.pushSave, "save", tooltip="save to file")
        roundButton(self.ui.pushAddTypedToken,
                    "plus",
                    tooltip="add typed token")
        roundButton(self.ui.pushSaveAndExit, "exit", tooltip="exit")

        # attach ontology
        ontology_name = getOntologyName(task="task_typed_tokens")
        ontology = OntologyContainer(
            ontology_name)  # DIRECTORIES["ontology_location"] % ontology_name)
        self.networks = ontology.list_leave_networks

        self.typed_token_file_spec = FILES["typed_token_file"] % ontology_name

        self.DATA = TypedTokenData()

        typed_tokens = []
        self.instances = {}
        for nw in self.networks:
            for token in ontology.token_typedtoken_on_networks[nw]:
                for typed_token in ontology.token_typedtoken_on_networks[nw][
                        token]:
                    typed_tokens.append(typed_token)
                    # self.instances[typed_token] = INSTANCES

        self.DATA.initialise(typed_tokens)
        self.__interfaceLogics("start")
        self.new = False
        self.selected_typed_token_class = None
        gotten = self.load()
        if gotten:
            self.__interfaceLogics("loaded")
        else:
            self.__interfaceLogics("start")
            typed_tokens_class = self.__makeTokenWithTypedTokensCombo()
            self.new = True
            self.__interfaceLogics("new")
Ejemplo n.º 3
0
  def __init__(self):
    QtGui.QMainWindow.__init__(self)
    self.ui = Ui_MainWindow()
    self.ui.setupUi(self)

    self.ontology_name = getOntologyName()
    self.ontology = OntologyContainer(self.ontology_name)
    self.ontology_location = self.ontology.onto_path

    models_file = DIRECTORIES["model_library_location"] % self.ontology_name
    self.mod_name = afm(models_file)[0]
    # self.model_loc = '{}/models/{}'.format(self.ontology_location, self.mod_name)
    # print('JALLA')

    self.ui.ontology_name_label.setText('{}'.format(self.ontology_name))
    self.ui.model_name_label.setText('{}'.format(self.mod_name))

    self.model_loc = DIRECTORIES["model_location"] % (self.ontology_name, self.mod_name)

    self.cases_location = DIRECTORIES["cases_location"] % (self.ontology_name,
                                                           self.mod_name)
    self.case_name, new_case = afc(self.cases_location, alternative = False)

    # self.model = path.join(models_file, self.mod_name)

    # self.model_file_name = '{}.json'.format(self.mod_name)

    self.fill_language_selection()
    # message = '<b>Set up</b> <br />Ontology: {}<br />Model: {}'
    # display = message.format(self.ontology_name, self.mod_name)
    # self.ui.message_box.setText(display)
    # self.language = None
    # self.already_compiled = self.check_for_model_existance()
    # if not self.already_compiled:
      # self.setup_new_model_structure()
    # self.upload_topology()

    self.mr = ModelRenderer(self.ontology, self.mod_name, self.case_name)
Ejemplo n.º 4
0
from PyQt5 import QtGui, QtWidgets
from TaskBuilder.z_ModelFactory.editor_model_factory_gui_impl import Ui_ModelFactory
from Common.ontology_container import OntologyContainer
from TaskBuilder.z_ModelFactory.model_integration import ModelFactory

#
# cwd = os.getcwd()
# sys.path.append(cwd)

if __name__ == '__main__':
  mode = 'use'
  # mode = 'development ModelFactory'
  if mode == 'development ModelFactory':
    ontology_name = 'Ball_02'
    ontology = OntologyContainer(ontology_name)
    ontology_location = ontology.ontology_location
    mod_name = 'ball_fall'
    language = 'python'
    model_loc = '{}/models/{}'.format(ontology_location, mod_name)
    mf = ModelFactory(ontology, mod_name, language, model_loc)
    mf.produce_code()
  else:
    a = QtWidgets.QApplication(sys.argv)
    a.setWindowIcon(QtGui.QIcon("./Common/icons/modelfactory.png"))
    w = Ui_ModelFactory()
    w.setWindowTitle('Model Factory')
    w.show()
    r = a.exec_()
    sys.exit(r)
    def __init__(self):
        QtWidgets.QMainWindow.__init__(self)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        self.ontology_name = getOntologyName(task="task_entity_generation")
        self.ontology_dir = DIRECTORIES[
            "ontology_location"] % self.ontology_name
        self.ontology_file = FILES["ontology_file"] % self.ontology_name

        checkAndFixResources(self.ontology_name, stage="ontology_stage_2")

        self.ontology_container = OntologyContainer(self.ontology_name)
        self.ontology_tree = self.ontology_container.ontology_tree
        self.interfaces = self.ontology_container.interfaces
        self.variables = self.ontology_container.variables  # readVariables()
        self.indices = self.ontology_container.indices
        self.incidence_dictionary, self.inv_incidence_dictionary = makeIncidenceDictionaries(
            self.variables)

        self.equation_dictionary = {}
        self.__makeEquationDictionary()
        self.equation_assignment = self.ontology_container.equation_assignment

        self.radio_selectors = {}

        self.current_component = None  # node or arc

        self.current_equation_IDs = {
        }  # hash: radio button index     value: equation_ID_str

        self.current_node_network = None
        self.previous_node_network = None
        self.current_node_variable_class = None
        self.selected_node_key = None
        self.current_node_equation = None

        self.current_arc_network = None
        self.previous_arc_network = None
        self.current_arc_variable_class = None
        self.selected_arc_key = None
        self.current_arc_equation = None

        self.current_interface_network = None
        self.previous_interface_network = None
        self.current_interface_variable_class = None
        self.selected_interface_key = None
        self.current_interface_equation = None

        self.node_indicator_item = None
        self.last_node_coordinate = None
        self.arc_indicator_item = None
        self.last_arc_coordinate = None
        self.intra_indicator_item = None
        self.last_interface_coordinate = None
        self.inter_indicator_item = None
        self.last_inter_coordinate = None

        self.node_table_objects = {}
        self.arc_table_objects = {}
        self.intra_table_objects = {}
        self.inter_table_objects = {}

        # icons
        self.icons = {
            "edit": QtGui.QIcon("%s/edit.png" % DIRECTORIES["icon_location"]),
            "OK": QtGui.QIcon("%s/accept.png" % DIRECTORIES["icon_location"]),
            "back": QtGui.QIcon("%s/back.png" % DIRECTORIES["icon_location"]),
            "left":
            QtGui.QIcon("%s/left-icon.png" % DIRECTORIES["icon_location"]),
        }

        self.__makeEmptyDataStructures()
Ejemplo n.º 6
0
    def __init__(self, icon_f):

        super().__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        roundButton(self.ui.pushButtonInformation,
                    "info",
                    tooltip="information")
        roundButton(self.ui.pushButtonSave,
                    "save",
                    tooltip="save entity behaviour")
        roundButton(self.ui.pushButtonCancel,
                    "exit",
                    tooltip="cancel and exit")
        roundButton(self.ui.pushButtonDelete,
                    "delete",
                    tooltip="delete current var/eq tree")
        roundButton(self.ui.pushButtonMakeLatex,
                    "LaTex",
                    tooltip="make latex files for all objects")
        roundButton(self.ui.pushButtonViewLatex,
                    "variable_show",
                    tooltip="show latex")
        roundButton(self.ui.pushButtonUpdate, "update", tooltip="update tree")

        self.ui.groupBoxControls.hide()
        self.ui.pushButtonLeft.hide()
        self.ui.pushButtonRight.hide()
        self.ui.pushButtonMakeLatex.hide()
        self.ui.pushButtonViewLatex.hide()

        # output streaming
        REDIRECT_STDOUT = True
        REDIRECT_ERROR = True

        stdOut = Redirect(self.ui.msgTextBoxStandardOut)
        stdOut.home()
        stdError = Redirect(self.ui.msgTextBoxErrorOut)
        stdError.home()
        if REDIRECT_STDOUT:
            sys.stdout = Stream(newText=stdOut.update)
        if REDIRECT_ERROR:
            sys.stderr = Stream(newText=stdError.update)

        # first get ontology
        self.ontology_name = getOntologyName(task=icon_f)

        # check for infrastructure
        checkAndFixResources(self.ontology_name, stage="ontology_stage_2")

        # attach ontology
        self.ontology_container = OntologyContainer(self.ontology_name)
        self.location = DIRECTORIES["latex_doc_location"] % self.ontology_name

        self.ontology_location = DIRECTORIES["ontology_location"] % str(
            self.ontology_name)

        self.reduced_network_node_list = self.ontology_container.list_reduced_network_node_objects
        self.reduced_arc_list = self.ontology_container.list_reduced_network_arc_objects

        # instantiate entity behaviours
        networks = self.ontology_container.list_inter_branches
        # entities_list = self.reduced_network_node_list

        self.arc_objects = self.ontology_container.list_arc_objects_on_networks
        self.node_objects = self.ontology_container.list_inter_node_objects_tokens  # list_node_objects_on_networks_with_tokens
        entities_list = []
        for nw in self.node_objects:
            for o in self.node_objects[nw]:
                obj = TEMPLATE_ENTITY_OBJECT % (nw, "node", o, "base")
                entities_list.append(obj)
        for nw in self.arc_objects:
            for o in self.arc_objects[nw]:
                obj = TEMPLATE_ENTITY_OBJECT % (
                    nw, "arc", o, "base"
                )  # RULE: "base" is used for the base bipartite graph
                entities_list.append(obj)

        self.entity_behaviours = EntityBehaviour(entities_list)

        self.list_linked_equations = self.__getFilteredEquationList(
            "interface_link_equation")
        # print("debugging")

        equations_label_list, \
        self.equation_information, \
        self.equation_inverse_index = self.__makeEquationAndIndexLists()
        self.rules = {}

        # get existing data
        self.__readVariableAssignmentToEntity()

        # interface components
        self.layout_InterNetworks = QtWidgets.QVBoxLayout(
        )  # Vertical Box with horizontal boxes of radio buttons & labels
        self.ui.scrollAreaWidgetContentsInterNetworks.setLayout(
            self.layout_InterNetworks)

        # initialisations
        # network selector
        self.radio_InterNetworks = Selector("InterNetworks",
                                            self.radioReceiverState, networks,
                                            self.layout_InterNetworks)

        self.selected_InterNetwork_ID = None
        self.selected_Entity_ID = None
        self.selected_variant_ID = None
        self.selected_variant_str_ID = "base"
        self.radio_index = None
        self.selected_base_variable = None
        self.rightListEquationIDs = []
        self.rightListEquationIDs_radio_ID = []

        self.match_equations_label_list = []
        self.match_equation_ID = {}
        # self.node_arc = "nodes"
        self.node_arc = self.ui.tabWidgetNodesArcs.tabText(
            self.ui.tabWidgetNodesArcs.currentIndex())

        # controls
        self.actions = [
            "show", "duplicates", "new_variant", "edit_variant",
            "instantiate_variant"
        ]

        # prepare lists
        self.current_base_var_ID = None

        # start process

        self.status_report = self.statusBar().showMessage
        self.status_report("getting started")
        self.entity_layout_clean = True
        self.variant_layout_clean = True
        self.equation_left_clean = True
        self.equation_right_clean = True
        self.selected_variant = None
        self.state = "start"
Ejemplo n.º 7
0
ext = [root, os.path.join(root, 'packages'), \
             os.path.join(root, 'tasks'), \
             os.path.join(root, 'packages', 'OntologyBuilder', 'EMMO_Integration')
       ]
# print(os.path.join(root, 'packages', 'OntologyBuilder', 'EMMO_Integration'))

# emmo = "/home/heinz/1_Gits/ProcessModeller/ProcessModeller_v7_04/packages/OntologyBuilder/EMMO_Integration/"

sys.path.extend(ext)
from emmo_attach import ProMoOwlOntology
from Common.ontology_container import OntologyContainer

from owlready2 import *

ontology = OntologyContainer("flash_03")  #'flash_03')

variables = ontology.vars

name = "play"
owlfile = name + ".owl"

# onto  = O.setup_ontology(name)
o = ProMoOwlOntology()
onto = o.setupOnto()

V_1 = onto.VAR("V_1")
units = variables[1]["units"].asList()
V_1.time = [units[0]]
V_1.length = [units[1]]
V_1.amount = [units[2]]
Ejemplo n.º 8
0
import os
import sys

root = os.path.abspath(os.path.join(".."))
sys.path.extend(
    [root, os.path.join(root, 'packages'),
     os.path.join(root, 'tasks')])

from Common.ontology_container import OntologyContainer
from OntologyBuilder.OntologyEquationEditor.resources import DotGraphVariableEquations

if __name__ == '__main__':
    ontology_name = "HAP_Ontology_Repository-playground_v8"

    ontology_container = OntologyContainer(ontology_name)
    variables = ontology_container.variables
    indices = ontology_container.indices

    # make_variable_equation_pngs(variables, ontology_name)

    dot = DotGraphVariableEquations(variables, indices, 10, ontology_name)

    print("finished")