Difference between revisions of "PKC Workflow/Process"

From PKC
Jump to navigation Jump to search
Line 47: Line 47:


== Subprocess ==  
== Subprocess ==  
[[wikipedia:Modular programming|Modular programming]] is a software design technique that emphasizes separating the functionality of a program into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality. A Process in [[Logic Model]] could be divided into SubModels.  [[How Logic model relates with SubModels]]
All the submodels in [[PKC Workflow]]:
{{LogicModel
|name = TLA Workflow
}}
{{LogicModel
|name = PKC Workflow/Jenkins Integration 
}}
{{Logic Model
|context=
# The [[Universal Data Abstraction]] includes data scheme of [[Page/File/Service]]. 
# Jenkins is an automation server for users to interact with services.
|goal=
# To integrate automation server with PKC to build a workflow engine
|criteria=
# Users could manipulate programmable objects on other application in PKC page.
|outputs=
# A complete service namespace. 
# A module serving as interface for users to interact
|process=
# Specify a namespace to express the interaction with service. 
# [[Activity:Learn Lua]]
# Create a Lua based module which takes parametrized inputs. 
|inputs=
# Jenkins setup
# A service namespace
|boundaries=
# Finish within 1 week of time
}}
== [[Docker Workflow]]==
{{Logic Model
|context=
# The Mediawiki container on thewiki.us contains software which are constantly changing.
|goal=
# Specify and docker registry workflow of PKC and test. 
|criteria=
# The process are investigated and streamlined.
# Users follow and improve the workflow.
# The tags are named properly. 
|outputs=
# A workflow page.
|process=
# {{:Process/Docker Workflow}}
|inputs=
# Knowledge from [[Docker]].
# [https://docs.docker.com/registry/ Docker registry tutorial]
# [https://docs.docker.com/registry/introduction/#understanding-image-naming Image Naming]
|boundaries=
# By now we only test the workflow on thewiki.us server.  More servers should be tested in the future.
}}
== Ideation Sub-Model ==
{{Logic Model
|context= [[Ideation Project]]
|goal=
# To model and formalize the structure of Ideation.
# Leverage PKC as the foundation for Ideation. 
|criteria=
# Specify Ideation structure
# Specify how PKC could process these ideas.   
|outputs=
# Ideation structure specification
# PKC application on Ideation specification
|process=
[[Status:Uncertain]]
|inputs=
[[Status:Uncertain]]
|boundaries=
# Finish within 1 week of time
}}




== Branch primitive ==  
== Branch primitive ==  
[https://reference.wolfram.com/language/guide/FlowControl.html FlowControl primitives of Mathematica]
[https://reference.wolfram.com/language/guide/FlowControl.html FlowControl primitives of Mathematica]
== Others ==
Graph representation of a function:


</noinclude>
</noinclude>

Revision as of 08:18, 23 August 2021

  1. Meeting and Communication
  2. Issue
  3. Updates and reports
  4. All activities


Note

When describing a process, it could be confusing as a process relates some inputs to outputs. The information entity such as Issue could mean either a process of issuing or the issue result presenting as a page.

When describing a process in the macroscope, it is always a verb. The input/output is defined according to the function's specification.

Inputs - [Process] -> Outputs


There are 2 possible reasons why the input/output might be incomplete:

  1. Stateful functions which cause side effects or dependence on global variables: It is the trade-off when using functional representation. To stick to the functional representation style, we should think about how to reorganize the function so that it is closer to stateless.
  2. Not capturing the input/output that a function cares about: Ideally, every input/output should be captured at least in low precision (type system). But since there are complexity and obscurity when describing real-world knowledge, it is possible that the input/output is incomplete.


When describing the inner structure of a process, there are more kinds of modeling methods (we can see this in the complexity of programming). It is feasible to add more structure (corresponding to different semantics) but note that a compact structure (desired traits of knowledge representation) is preferable.


Loop

In the simplest form, the process is the mapping of input to output. To describe the recurring event in the project, we add a Loop structure on top of it. See the LoopingConstructs Primitive in Mathematica The diagram representing the function with loop will be:

Inputs -> Process -> Outputs
Process -> Process

<graphviz> digraph G {

   input [URL="PKC Workflow/Input"];
   process [URL="PKC Workflow/Process"];
   output [URL="PKC Workflow/Output"];
   input->process;
   process->process [label="recursive"];
   process->output;

} </graphviz>

States and Local Variables

In a process, there are data generated alongside but isn't intended to serve as the output or expose outside the process. In programming, it corresponds to Module and Localization. In PKC Workflow, the following pages

serve as this kind of localized resource.
  1. Meeting and Communication
  2. Issue
  3. Activities
  4. Updates and reports

Subprocess

Modular programming is a software design technique that emphasizes separating the functionality of a program into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality. A Process in Logic Model could be divided into SubModels. How Logic model relates with SubModels All the submodels in PKC Workflow:


Logic Model (TLA Workflow) Template:LogicModel 08 23, 2021
Abstract Specification
Context
  1. REDIRECT PKC Workflow/System Verification by TLA+/Context
Goal
  1. REDIRECT PKC Workflow/System Verification by TLA+/Goal
Success Criteria
  1. REDIRECT PKC Workflow/System Verification by TLA+/Criteria
Concrete Implementation
Given Inputs When Process is executed... Then, we get Outputs
  1. REDIRECT PKC Workflow/System Verification by TLA+/Input
  1. REDIRECT PKC Workflow/System Verification by TLA+/Process
  1. REDIRECT PKC Workflow/System Verification by TLA+/Output
Boundary/Safety Conditions of TLA Workflow
  1. REDIRECT PKC Workflow/System Verification by TLA+/Boundary


Logic Model (PKC Workflow/Jenkins Integration) Template:LogicModel 08 23, 2021
Abstract Specification
Context
  1. The Universal Data Abstraction includes data scheme of Page/File/Service.
  2. Jenkins is an automation server for users to interact with services.
Goal
  1. To integrate automation server with PKC to build a workflow engine
Success Criteria
  1. Users could manipulate programmable objects on other application in PKC page.
Concrete Implementation
Given Inputs When Process is executed... Then, we get Outputs
  1. Jenkins setup
  2. A service namespace
  1. Specify a namespace to express the interaction with service.
  2. Activity:Learn Lua
  3. Create a Lua based module which takes parametrized inputs.
  1. A complete service namespace.
  2. A module serving as interface for users to interact
Boundary/Safety Conditions of PKC Workflow/Jenkins Integration
  1. Finish within 1 week of time



TO BE DEPRECATED: When you see this, please consider moving the logic model below from Template:Logic Model to Template:LogicModel

1. Context
  1. The Universal Data Abstraction includes data scheme of Page/File/Service.
  2. Jenkins is an automation server for users to interact with services.
2. Goal
  1. To integrate automation server with PKC to build a workflow engine
3. Success Criteria
  1. Users could manipulate programmable objects on other application in PKC page.
4. Outputs 5. Process 6. Inputs
  1. A complete service namespace.
  2. A module serving as interface for users to interact
  1. Specify a namespace to express the interaction with service.
  2. Activity:Learn Lua
  3. Create a Lua based module which takes parametrized inputs.
  1. Jenkins setup
  2. A service namespace
7. Boundary Conditions
  1. Finish within 1 week of time


Docker Workflow

TO BE DEPRECATED: When you see this, please consider moving the logic model below from Template:Logic Model to Template:LogicModel

1. Context
  1. The Mediawiki container on thewiki.us contains software which are constantly changing.
2. Goal
  1. Specify and docker registry workflow of PKC and test.
3. Success Criteria
  1. The process are investigated and streamlined.
  2. Users follow and improve the workflow.
  3. The tags are named properly.
4. Outputs 5. Process 6. Inputs
  1. A workflow page.
  1. Pull and build a docker registry image from the official website. [1].
  2. For the target container to be versioned, commit the container.
  3. Push to the local registry and then test whether it succeeded.
  4. Install some extensions and make a software version from it.
  1. Knowledge from Docker.
  2. Docker registry tutorial
  3. Image Naming
7. Boundary Conditions
  1. By now we only test the workflow on thewiki.us server. More servers should be tested in the future.


Ideation Sub-Model

TO BE DEPRECATED: When you see this, please consider moving the logic model below from Template:Logic Model to Template:LogicModel

1. Context

Ideation Project

2. Goal
  1. To model and formalize the structure of Ideation.
  2. Leverage PKC as the foundation for Ideation.
3. Success Criteria
  1. Specify Ideation structure
  2. Specify how PKC could process these ideas.
4. Outputs 5. Process 6. Inputs
  1. Ideation structure specification
  2. PKC application on Ideation specification

Status:Uncertain

Status:Uncertain

7. Boundary Conditions
  1. Finish within 1 week of time



Branch primitive

FlowControl primitives of Mathematica