Assembly Sequence Generation Algorithm API examples =================================================== This section describes some usage examples of the Knowledge-Base Interface. Function documentation ---------------------------------- ASG Function documentation:: from Interface_KB import KB_Interface,InterfaceObjects API = KB_Interface.KB_Interface(KB_BASELINE='input/metamodel/Version8/PACoMM.ecore',DEBUG=True) #--Call information of all ASG functions-- print(API.getASG.__doc__) print(API.updateASG_DFARules.__doc__) print(API.setASG.__doc__) print(API.getASGAlgorithmData.__doc__) print(API.updateASGAlgorithmData.__doc__) print(API.setASGAlgorithmData.__doc__) Interface object documentation ------------------------------------------------- ASG Interface objects documentation:: from Interface_KB import KB_Interface,InterfaceObjects API = KB_Interface.KB_Interface(KB_BASELINE='input/metamodel/Version8/PACoMM.ecore',DEBUG=True) #--Call information of the ASG interface object and contained functions-- print(InterfaceObjects.ASG.__doc__) ASG Data Interface objects documentation:: from Interface_KB import KB_Interface,InterfaceObjects API = KB_Interface.KB_Interface(KB_BASELINE='input/metamodel/Version8/PACoMM.ecore',DEBUG=True) #--Call information of the ASG interface object and contained functions-- print(ASGAlgorithmData.ASG.__doc__) DFA Interface objects documentation:: from Interface_KB import KB_Interface,InterfaceObjects API = KB_Interface.KB_Interface(KB_BASELINE='input/metamodel/Version8/PACoMM.ecore',DEBUG=True) #--Call information of the DFA interface object and contained functions-- print(InterfaceObjects.DFARule.__doc__) print(InterfaceObjects.DFARule.json2object.__doc__) print(InterfaceObjects.DFARule.object2json.__doc__) Parameter Interface objects documentation:: from Interface_KB import KB_Interface,InterfaceObjects API = KB_Interface.KB_Interface(KB_BASELINE='input/metamodel/Version8/PACoMM.ecore',DEBUG=True) #--Call information of the Parameter interface object and contained functions-- print(InterfaceObjects.Parameter.__doc__) Fetch KB data ------------------------------------- Fetching the ASG model:: from Interface_KB import KB_Interface,InterfaceObjects API = KB_Interface.KB_Interface(KB_BASELINE='input/metamodel/Version8/PACoMM.ecore',DEBUG=True) #define the path to the KB instance model path_KB = API.resolvePath('input/KB_examples/test_getASG.pacopackage') #importing the KB instance model API.MM, API.model, API.model_instance = API.importKBInstanceModel(path_KB) # fetching the ASG model InterfaceObject_received = API.getASG('ASG-1') Fetching the ASG Data:: from Interface_KB import KB_Interface,InterfaceObjects API = KB_Interface.KB_Interface(KB_BASELINE='input/metamodel/Version8/PACoMM.ecore',DEBUG=True) #define the path to the KB instance model path_KB = API.resolvePath('input/KB_examples/ASGAlgorithmData_TEST.pacopackage') #importing the KB instance model API.MM, API.model, API.model_instance = API.importKBInstanceModel(path_KB) # fetching the ASG data InterfaceObject_received = API.getASGAlgorithmData('ASG-01') Update KB data ---------------------------------------------- Updating the ASG model:: from Interface_KB import KB_Interface,InterfaceObjects API = KB_Interface.KB_Interface(KB_BASELINE='input/metamodel/Version8/PACoMM.ecore',DEBUG=True) # load the json file to perform update jsonPath = API.resolvePath('input/JSON-docs/updateASGModel.json') interfaceObject = InterfaceObjects.ASG(jsonPath) #define the path to the KB instance model path_KB = API.resolvePath('input/KB_examples/test_getASG.pacopackage') #importing the KB instance model API.MM, API.model, API.model_instance = API.importKBInstanceModel(path_KB) #updating the ASG model error = API.updateASG(AssemblySystemName='ASG-1',interfaceObject=interfaceObject) Updating the ASG Data:: from Interface_KB import KB_Interface,InterfaceObjects API = KB_Interface.KB_Interface(KB_BASELINE='input/metamodel/Version8/PACoMM.ecore',DEBUG=True) #interface object to be updated interfaceObject = InterfaceObjects.ASGAlgorithmData(Score=6.0,Feasible=False,UnexploredOptions="Option2",Priority=2.0) #define the path to the KB instance model path_KB = API.resolvePath('input/KB_examples/UpdateASGAlgorithmData.pacopackage') #importing the KB instance model API.MM, API.model, API.model_instance = API.importKBInstanceModel(path_KB) # Update the ASG data InterfaceObject_received = API.updateASGAlgorithmData(AssemblySystemName='ASG-01', interfaceObject=interfaceObject) Add KB data ---------------------------------------------- Adding the ASG model:: from Interface_KB import KB_Interface,InterfaceObjects API = KB_Interface.KB_Interface(KB_BASELINE='input/metamodel/Version8/PACoMM.ecore',DEBUG=True) #------------------------specify interface object START ----------------------------- stopConditions = [] s1 = InterfaceObjects.StopCondition(None,"Stop-1","Maximum depth of search",1000.0,"maxDepth=0") s2 = InterfaceObjects.StopCondition(None, "Stop-2","Maximum time of search",360.0,"maxDepth=1") stopConditions.append(s1) stopConditions.append(s2) ASG_interface = InterfaceObjects.ASG(None,Name='ASG-1-config', Description='AssemblySequenceDraft1',ProcessingType="Full=0",Generator=['GenNew-1','SinglePartGenerator'],Selector=['SelNew-1','RuleSelector'],Evaluator=['EvalNew-1','RuleEvaluator'],StopConditions=stopConditions) # ------------------------specify interface object END ----------------------------- #define the path to the KB instance model path_KB = API.resolvePath('input/KB_examples/test_setASG.pacopackage') #importing the KB instance model API.MM, API.model, API.model_instance = API.importKBInstanceModel(path_KB) #updating the ASG model error = API.setASG('ASG-1',ASG_interface) Adding the ASG Data:: from Interface_KB import KB_Interface,InterfaceObjects API = KB_Interface.KB_Interface(KB_BASELINE='input/metamodel/Version8/PACoMM.ecore',DEBUG=True) #interface object to be updated interfaceObject = InterfaceObjects.ASGAlgorithmData(Score=6.0,Feasible=False,UnexploredOptions="Option2",Priority=2.0) #define the path to the KB instance model path_KB = API.resolvePath('output/KB_Instance/test_setASGData_EmptyKB.pacopackage') #importing the KB instance model API.MM, API.model, API.model_instance = API.importKBInstanceModel(path_KB) # Add the ASG data InterfaceObject_received = API.setASGAlgorithmData('ASG-NEW',interfaceObject) Instantiating from JSON file ---------------------------------------------------------------- instantiating the ASG model:: from Interface_KB import KB_Interface,InterfaceObjects API = KB_Interface.KB_Interface(KB_BASELINE='input/metamodel/Version8/PACoMM.ecore',DEBUG=True) # Specify the absolute path to the JSON file jsonDescriptor = API.resolvePath('input/JSON-docs/updateASGModel.json') # instantiate the DFARule via the JSON file ASG = InterfaceObjects.ASG(JSONDescriptor=jsonDescriptor) Generating JSON object ----------------------------------------------------------------- Generating the ASG JSON model:: #define the path to the KB instance model path_KB = API.resolvePath('input/KB_examples/test_updateASG.pacopackage') #importing the KB instance model API.MM, API.model, API.model_instance = API.importKBInstanceModel(path_KB) # fetching the ASG model InterfaceObject_received = API.getASG('ASG-1') #generating the JSON object ASG_json = InterfaceObject_received.object2json() #printing the JSON object print(ASG_json) Generating the ASG Data JSON model:: #define the path to the KB instance model path_KB = API.resolvePath('input/KB_examples/ASGAlgorithmData_TEST.pacopackage') #importing the KB instance model API.MM, API.model, API.model_instance = API.importKBInstanceModel(path_KB) # fetching the ASG model InterfaceObject_received = API.getASGAlgorithmData('ASG-01') #generating the JSON object ASG_json = InterfaceObject_received.object2json() #printing the JSON object print(ASG_json)