definit 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
definit-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,152 @@
1
+ Metadata-Version: 2.4
2
+ Name: definit
3
+ Version: 0.1.0
4
+ Summary: Hierarchy of precise definitions.
5
+ Requires-Python: >=3.12
6
+ Description-Content-Type: text/markdown
7
+ Requires-Dist: networkx
8
+ Requires-Dist: matplotlib
9
+ Requires-Dist: definit-db-md==0.5.0
10
+
11
+ # DefinIT
12
+
13
+ ## What?
14
+
15
+ DefinIT is a way of representing knowledge as a hierarchy of precise (unambiguous) definitions (or concepts).
16
+
17
+ Hierarchy of definitions is a Knowledge Graph[1] with a DAG (directed acyclic graph) structure.
18
+
19
+ When it comes to knowledge representation type, the definitions have procedural
20
+ representation (explaining the behaviour) and DAGs have structural representation,
21
+ showing the relations between different definitions. Dependency is the only kind of relation
22
+ between definitions.
23
+
24
+ The most fundamental concepts make up the very bottom of the hierarchy of definitions.
25
+ The ground level definitions do not have any references to other definitions.
26
+ The are purely describe without usage of other concepts.
27
+
28
+ The higher a concept is placed in the hierarchy, the higher level definitions it can reference to.
29
+ A definition can only reference to another definition from a lower level.
30
+
31
+ Over time, the DAG can be updated with more precise and better placed definitions.
32
+ It is a kind of living, systematic knowledge representation of a specific field of knowledge.
33
+
34
+ ## Why?
35
+
36
+ First principles thinking is the act of boiling a process down to the
37
+ fundamental parts that you know are true and building up from there.
38
+ It is a way of understanding the world by breaking down complex problems into their most basic elements.
39
+
40
+ The original idea behind "DefinIT" was to create a knowledge representation for the field of computer science.
41
+ In the early stages of the field, the importance of a unambiguous expert language has been highlighted.
42
+ In 1954, Grace Hopper, a pioneer in computer programming, wrote a "First Glossary of Programming Terminology"[2].
43
+ She was working on first programming language to express operations using English-like statements. The language was later called FLOW-MATIC, originally known as B-0 (Business Language version 0). She recognized the need for a standardized vocabulary
44
+ to facilitate communication among programmers and engineers.
45
+ This glossary was one of the first attempts to create a common language for computer science,
46
+ and it laid the groundwork for future efforts to standardize terminology in the field.
47
+
48
+ In the 1960s, the Association for Computing Machinery (ACM) established a committee to develop a standardized vocabulary for computer science.
49
+ In 1964, the committee produced the "ACM Computing Classification System"[3], which provided a hierarchical classification of computing topics and terms.
50
+ The current version (from 2012) of the "ACM Computing Classification System" is widely used in academic publishing and research to categorize computer science literature. It has a tree structure with a set of classes and subclasses that cover various areas of computer science, including algorithms, programming languages, software engineering, and artificial intelligence.
51
+
52
+ In the 1970s, the IEEE (Institute of Electrical and Electronics Engineers) also recognized the need for standardized terminology in computer science and engineering.
53
+ They established the "IEEE Standard Glossary of Software Engineering Terminology"[4], which provided definitions for key terms in software engineering.
54
+
55
+ In the 1980s and 1990s, as computer science and technology continued to evolve rapidly,
56
+ there were numerous efforts to create standardized vocabularies and glossaries in various subfields of computer science.
57
+ For example, the Object Management Group (OMG) developed the Unified Modeling Language (UML)[5],
58
+ which included a standardized set of terms and symbols for modeling software systems.
59
+ In the 2000s and beyond, the rise of the internet and online resources led to the creation of numerous glossaries and dictionaries for computer science terminology.
60
+ Many universities and organizations began to publish their own glossaries and dictionaries,
61
+ and online platforms like Wikipedia became valuable resources for finding definitions and explanations of computer science terms.
62
+
63
+ Then why do we need "DefinIT"? What new thing does it bring to the current state of affairs? The target is to build a knowledge model when one can start learning from
64
+ foundamental concepts and easily climb to higher levels in hierarchy.
65
+ Picking a single definition, the descendent nodes indicate what should be
66
+ firstly understood to fully understand the chosen definition.
67
+
68
+ Keeping the DAG structure enforce us to build a definition on top of the more general concepts.
69
+ It makes it clear how specific is the concept of our interest.
70
+ Going down in the hierarchy we reach a low level definitions that are more general and fundamental.
71
+ Climping up on the DAG we learn more specific, high level concepts
72
+ (see 'trie' dependencies DAG on Figure 1. as an example).
73
+
74
+ !['trie' dependencies DAG](./dag_definition_trie.png)
75
+ Figure 1. 'trie' dependencies DAG.
76
+
77
+ The DAG is going to be precise and well arranged knowledge representation.
78
+ It can be used by humans for example to learn a new field of knowledge.
79
+ Specyfing an unambiguous language that experts in a field use to communicate with each other
80
+ will improve the quality and clarity of the communication.
81
+ It can also be used by LLMs (Language Models) as a solid training/tuning data or part of prompting.
82
+
83
+ If one would like to learn a specific part of the knowledge,
84
+ the "Track" concept can be used. Figure 2. shows an example of a "Track" for data structures.
85
+
86
+ !['data_structures' DAG](./dag_track_data_structures.png)
87
+ Figure 2. Circular DAG visualization of 'data_structures' track.
88
+
89
+ ## How?
90
+
91
+ It is a tedious process to create such knowledge structure since one need to have
92
+ a good undestanding of an abstraction level for each definition.
93
+ AI language models can automate some part of the work.
94
+ On the other hand, the creation process allows for a deep understanding
95
+ of the concepts and their unambiguous definitions.
96
+
97
+ Money is a universal motivator and it could be involved in the creation process as well.
98
+ One of ideas to involve money in the process is inspired by the blockchain technology.
99
+ A single block is an update to the existing knowledge structure (a single commit).
100
+ It is not clear yet who is going to be the judge if a specific update request
101
+ should be accepted or rejected.
102
+
103
+ One of the ideas is to involve the current stake/knowledge holders
104
+ with something similar to the Proof-of-Stake.
105
+ The benefits for the knowledge update can be splitted between author(s) and reviewer(s).
106
+ Removing part of the content is going to be rewarded as well.
107
+ The current idea for the creation process is following:
108
+
109
+ - create a PR with proposed changes (additions, removals)
110
+ - selection of reviewers based on the current involvment on the content similar to the proposed one
111
+ - voting/corrections from the reviewers
112
+ - (if voted on) final decision from the project maintainer
113
+ - (if accepted) new knowledge coins are generated for the block (commit)
114
+ - (if accepted) new knowledge coins split between author(s) and reviewer(s)
115
+
116
+ The are several issue to be solved before introducing such process:
117
+ - what is the minimum amount of contribution (size of a minimum block/commit)?
118
+ - should the amount of generated knowledge coins be proportional to the number of signs being changed?
119
+ - how to reduce spam/garbage PRs (there could be too many of bad quality PRs due to AI tool capabilities)?
120
+ - how does a transaction of knowledge coins corresponds to the knowledge coin mining?
121
+ - Is the mining only triggered on an PR merge or on transactions as well?
122
+
123
+ ## Mentioned materials
124
+
125
+ 1. "A Common Sense View of Knowledge Graphs", Mike Bergman, https://www.mkbergman.com/2244/a-common-sense-view-of-knowledge-graphs/
126
+
127
+ 2. "Report to ACM: First Glossary of Programming Terminology", Grace Hopper, https://archive.computerhistory.org/resources/text/Knuth_Don_X4100/PDF_index/k-8-pdf/k-8-u2741-2-ACM-Glossary.pdf
128
+
129
+ 3. "ACM Computing Classification System", Association for Computing Machinery, https://dl.acm.org/ccs
130
+
131
+ 4. "IEEE Standard Glossary of Software Engineering Terminology", IEEE, https://ieeexplore.ieee.org/document/159342
132
+
133
+ 5. "Unified Modeling Language", Object Management Group, https://www.omg.org/spec/UML
134
+
135
+ ## Related materials
136
+
137
+ I. "What is Knowledge Representation in Artificial Intelligence?",
138
+ Sumeet Bansal, https://www.analytixlabs.co.in/blog/what-is-knowledge-representation-in-artificial-intelligence
139
+
140
+ II. "Ontology", wikipedia, https://en.wikipedia.org/wiki/Ontology
141
+
142
+ III. "Theory of categories", wikipedia, https://en.wikipedia.org/wiki/Theory_of_categories
143
+
144
+ IV. "Universal (metaphysics)", wikipedia, https://en.wikipedia.org/wiki/Universal_(metaphysics)
145
+
146
+ V. "Class (philosophy)", wikipedia, https://en.wikipedia.org/wiki/Class_(philosophy)
147
+
148
+ VI. "KBpedia", https://kbpedia.org/
149
+
150
+ VII. "Charles Sanders Peirce", wikipedia, https://en.wikipedia.org/wiki/Charles_Sanders_Peirce
151
+
152
+ VIII. "A Knowledge Representation Practionary", Michael K. Bergman, https://www.mkbergman.com/a-knowledge-representation-practionary/
@@ -0,0 +1,142 @@
1
+ # DefinIT
2
+
3
+ ## What?
4
+
5
+ DefinIT is a way of representing knowledge as a hierarchy of precise (unambiguous) definitions (or concepts).
6
+
7
+ Hierarchy of definitions is a Knowledge Graph[1] with a DAG (directed acyclic graph) structure.
8
+
9
+ When it comes to knowledge representation type, the definitions have procedural
10
+ representation (explaining the behaviour) and DAGs have structural representation,
11
+ showing the relations between different definitions. Dependency is the only kind of relation
12
+ between definitions.
13
+
14
+ The most fundamental concepts make up the very bottom of the hierarchy of definitions.
15
+ The ground level definitions do not have any references to other definitions.
16
+ The are purely describe without usage of other concepts.
17
+
18
+ The higher a concept is placed in the hierarchy, the higher level definitions it can reference to.
19
+ A definition can only reference to another definition from a lower level.
20
+
21
+ Over time, the DAG can be updated with more precise and better placed definitions.
22
+ It is a kind of living, systematic knowledge representation of a specific field of knowledge.
23
+
24
+ ## Why?
25
+
26
+ First principles thinking is the act of boiling a process down to the
27
+ fundamental parts that you know are true and building up from there.
28
+ It is a way of understanding the world by breaking down complex problems into their most basic elements.
29
+
30
+ The original idea behind "DefinIT" was to create a knowledge representation for the field of computer science.
31
+ In the early stages of the field, the importance of a unambiguous expert language has been highlighted.
32
+ In 1954, Grace Hopper, a pioneer in computer programming, wrote a "First Glossary of Programming Terminology"[2].
33
+ She was working on first programming language to express operations using English-like statements. The language was later called FLOW-MATIC, originally known as B-0 (Business Language version 0). She recognized the need for a standardized vocabulary
34
+ to facilitate communication among programmers and engineers.
35
+ This glossary was one of the first attempts to create a common language for computer science,
36
+ and it laid the groundwork for future efforts to standardize terminology in the field.
37
+
38
+ In the 1960s, the Association for Computing Machinery (ACM) established a committee to develop a standardized vocabulary for computer science.
39
+ In 1964, the committee produced the "ACM Computing Classification System"[3], which provided a hierarchical classification of computing topics and terms.
40
+ The current version (from 2012) of the "ACM Computing Classification System" is widely used in academic publishing and research to categorize computer science literature. It has a tree structure with a set of classes and subclasses that cover various areas of computer science, including algorithms, programming languages, software engineering, and artificial intelligence.
41
+
42
+ In the 1970s, the IEEE (Institute of Electrical and Electronics Engineers) also recognized the need for standardized terminology in computer science and engineering.
43
+ They established the "IEEE Standard Glossary of Software Engineering Terminology"[4], which provided definitions for key terms in software engineering.
44
+
45
+ In the 1980s and 1990s, as computer science and technology continued to evolve rapidly,
46
+ there were numerous efforts to create standardized vocabularies and glossaries in various subfields of computer science.
47
+ For example, the Object Management Group (OMG) developed the Unified Modeling Language (UML)[5],
48
+ which included a standardized set of terms and symbols for modeling software systems.
49
+ In the 2000s and beyond, the rise of the internet and online resources led to the creation of numerous glossaries and dictionaries for computer science terminology.
50
+ Many universities and organizations began to publish their own glossaries and dictionaries,
51
+ and online platforms like Wikipedia became valuable resources for finding definitions and explanations of computer science terms.
52
+
53
+ Then why do we need "DefinIT"? What new thing does it bring to the current state of affairs? The target is to build a knowledge model when one can start learning from
54
+ foundamental concepts and easily climb to higher levels in hierarchy.
55
+ Picking a single definition, the descendent nodes indicate what should be
56
+ firstly understood to fully understand the chosen definition.
57
+
58
+ Keeping the DAG structure enforce us to build a definition on top of the more general concepts.
59
+ It makes it clear how specific is the concept of our interest.
60
+ Going down in the hierarchy we reach a low level definitions that are more general and fundamental.
61
+ Climping up on the DAG we learn more specific, high level concepts
62
+ (see 'trie' dependencies DAG on Figure 1. as an example).
63
+
64
+ !['trie' dependencies DAG](./dag_definition_trie.png)
65
+ Figure 1. 'trie' dependencies DAG.
66
+
67
+ The DAG is going to be precise and well arranged knowledge representation.
68
+ It can be used by humans for example to learn a new field of knowledge.
69
+ Specyfing an unambiguous language that experts in a field use to communicate with each other
70
+ will improve the quality and clarity of the communication.
71
+ It can also be used by LLMs (Language Models) as a solid training/tuning data or part of prompting.
72
+
73
+ If one would like to learn a specific part of the knowledge,
74
+ the "Track" concept can be used. Figure 2. shows an example of a "Track" for data structures.
75
+
76
+ !['data_structures' DAG](./dag_track_data_structures.png)
77
+ Figure 2. Circular DAG visualization of 'data_structures' track.
78
+
79
+ ## How?
80
+
81
+ It is a tedious process to create such knowledge structure since one need to have
82
+ a good undestanding of an abstraction level for each definition.
83
+ AI language models can automate some part of the work.
84
+ On the other hand, the creation process allows for a deep understanding
85
+ of the concepts and their unambiguous definitions.
86
+
87
+ Money is a universal motivator and it could be involved in the creation process as well.
88
+ One of ideas to involve money in the process is inspired by the blockchain technology.
89
+ A single block is an update to the existing knowledge structure (a single commit).
90
+ It is not clear yet who is going to be the judge if a specific update request
91
+ should be accepted or rejected.
92
+
93
+ One of the ideas is to involve the current stake/knowledge holders
94
+ with something similar to the Proof-of-Stake.
95
+ The benefits for the knowledge update can be splitted between author(s) and reviewer(s).
96
+ Removing part of the content is going to be rewarded as well.
97
+ The current idea for the creation process is following:
98
+
99
+ - create a PR with proposed changes (additions, removals)
100
+ - selection of reviewers based on the current involvment on the content similar to the proposed one
101
+ - voting/corrections from the reviewers
102
+ - (if voted on) final decision from the project maintainer
103
+ - (if accepted) new knowledge coins are generated for the block (commit)
104
+ - (if accepted) new knowledge coins split between author(s) and reviewer(s)
105
+
106
+ The are several issue to be solved before introducing such process:
107
+ - what is the minimum amount of contribution (size of a minimum block/commit)?
108
+ - should the amount of generated knowledge coins be proportional to the number of signs being changed?
109
+ - how to reduce spam/garbage PRs (there could be too many of bad quality PRs due to AI tool capabilities)?
110
+ - how does a transaction of knowledge coins corresponds to the knowledge coin mining?
111
+ - Is the mining only triggered on an PR merge or on transactions as well?
112
+
113
+ ## Mentioned materials
114
+
115
+ 1. "A Common Sense View of Knowledge Graphs", Mike Bergman, https://www.mkbergman.com/2244/a-common-sense-view-of-knowledge-graphs/
116
+
117
+ 2. "Report to ACM: First Glossary of Programming Terminology", Grace Hopper, https://archive.computerhistory.org/resources/text/Knuth_Don_X4100/PDF_index/k-8-pdf/k-8-u2741-2-ACM-Glossary.pdf
118
+
119
+ 3. "ACM Computing Classification System", Association for Computing Machinery, https://dl.acm.org/ccs
120
+
121
+ 4. "IEEE Standard Glossary of Software Engineering Terminology", IEEE, https://ieeexplore.ieee.org/document/159342
122
+
123
+ 5. "Unified Modeling Language", Object Management Group, https://www.omg.org/spec/UML
124
+
125
+ ## Related materials
126
+
127
+ I. "What is Knowledge Representation in Artificial Intelligence?",
128
+ Sumeet Bansal, https://www.analytixlabs.co.in/blog/what-is-knowledge-representation-in-artificial-intelligence
129
+
130
+ II. "Ontology", wikipedia, https://en.wikipedia.org/wiki/Ontology
131
+
132
+ III. "Theory of categories", wikipedia, https://en.wikipedia.org/wiki/Theory_of_categories
133
+
134
+ IV. "Universal (metaphysics)", wikipedia, https://en.wikipedia.org/wiki/Universal_(metaphysics)
135
+
136
+ V. "Class (philosophy)", wikipedia, https://en.wikipedia.org/wiki/Class_(philosophy)
137
+
138
+ VI. "KBpedia", https://kbpedia.org/
139
+
140
+ VII. "Charles Sanders Peirce", wikipedia, https://en.wikipedia.org/wiki/Charles_Sanders_Peirce
141
+
142
+ VIII. "A Knowledge Representation Practionary", Michael K. Bergman, https://www.mkbergman.com/a-knowledge-representation-practionary/
@@ -0,0 +1,15 @@
1
+ [project]
2
+ name = "definit"
3
+ version = "0.1.0"
4
+ description = "Hierarchy of precise definitions."
5
+ readme = "README.md"
6
+ requires-python = ">=3.12"
7
+ dependencies = [
8
+ "networkx",
9
+ "matplotlib",
10
+ "definit-db-md==0.5.0"
11
+ ]
12
+
13
+ [tool.setuptools.packages.find]
14
+ where = ["src"]
15
+ namespaces = false
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,152 @@
1
+ Metadata-Version: 2.4
2
+ Name: definit
3
+ Version: 0.1.0
4
+ Summary: Hierarchy of precise definitions.
5
+ Requires-Python: >=3.12
6
+ Description-Content-Type: text/markdown
7
+ Requires-Dist: networkx
8
+ Requires-Dist: matplotlib
9
+ Requires-Dist: definit-db-md==0.5.0
10
+
11
+ # DefinIT
12
+
13
+ ## What?
14
+
15
+ DefinIT is a way of representing knowledge as a hierarchy of precise (unambiguous) definitions (or concepts).
16
+
17
+ Hierarchy of definitions is a Knowledge Graph[1] with a DAG (directed acyclic graph) structure.
18
+
19
+ When it comes to knowledge representation type, the definitions have procedural
20
+ representation (explaining the behaviour) and DAGs have structural representation,
21
+ showing the relations between different definitions. Dependency is the only kind of relation
22
+ between definitions.
23
+
24
+ The most fundamental concepts make up the very bottom of the hierarchy of definitions.
25
+ The ground level definitions do not have any references to other definitions.
26
+ The are purely describe without usage of other concepts.
27
+
28
+ The higher a concept is placed in the hierarchy, the higher level definitions it can reference to.
29
+ A definition can only reference to another definition from a lower level.
30
+
31
+ Over time, the DAG can be updated with more precise and better placed definitions.
32
+ It is a kind of living, systematic knowledge representation of a specific field of knowledge.
33
+
34
+ ## Why?
35
+
36
+ First principles thinking is the act of boiling a process down to the
37
+ fundamental parts that you know are true and building up from there.
38
+ It is a way of understanding the world by breaking down complex problems into their most basic elements.
39
+
40
+ The original idea behind "DefinIT" was to create a knowledge representation for the field of computer science.
41
+ In the early stages of the field, the importance of a unambiguous expert language has been highlighted.
42
+ In 1954, Grace Hopper, a pioneer in computer programming, wrote a "First Glossary of Programming Terminology"[2].
43
+ She was working on first programming language to express operations using English-like statements. The language was later called FLOW-MATIC, originally known as B-0 (Business Language version 0). She recognized the need for a standardized vocabulary
44
+ to facilitate communication among programmers and engineers.
45
+ This glossary was one of the first attempts to create a common language for computer science,
46
+ and it laid the groundwork for future efforts to standardize terminology in the field.
47
+
48
+ In the 1960s, the Association for Computing Machinery (ACM) established a committee to develop a standardized vocabulary for computer science.
49
+ In 1964, the committee produced the "ACM Computing Classification System"[3], which provided a hierarchical classification of computing topics and terms.
50
+ The current version (from 2012) of the "ACM Computing Classification System" is widely used in academic publishing and research to categorize computer science literature. It has a tree structure with a set of classes and subclasses that cover various areas of computer science, including algorithms, programming languages, software engineering, and artificial intelligence.
51
+
52
+ In the 1970s, the IEEE (Institute of Electrical and Electronics Engineers) also recognized the need for standardized terminology in computer science and engineering.
53
+ They established the "IEEE Standard Glossary of Software Engineering Terminology"[4], which provided definitions for key terms in software engineering.
54
+
55
+ In the 1980s and 1990s, as computer science and technology continued to evolve rapidly,
56
+ there were numerous efforts to create standardized vocabularies and glossaries in various subfields of computer science.
57
+ For example, the Object Management Group (OMG) developed the Unified Modeling Language (UML)[5],
58
+ which included a standardized set of terms and symbols for modeling software systems.
59
+ In the 2000s and beyond, the rise of the internet and online resources led to the creation of numerous glossaries and dictionaries for computer science terminology.
60
+ Many universities and organizations began to publish their own glossaries and dictionaries,
61
+ and online platforms like Wikipedia became valuable resources for finding definitions and explanations of computer science terms.
62
+
63
+ Then why do we need "DefinIT"? What new thing does it bring to the current state of affairs? The target is to build a knowledge model when one can start learning from
64
+ foundamental concepts and easily climb to higher levels in hierarchy.
65
+ Picking a single definition, the descendent nodes indicate what should be
66
+ firstly understood to fully understand the chosen definition.
67
+
68
+ Keeping the DAG structure enforce us to build a definition on top of the more general concepts.
69
+ It makes it clear how specific is the concept of our interest.
70
+ Going down in the hierarchy we reach a low level definitions that are more general and fundamental.
71
+ Climping up on the DAG we learn more specific, high level concepts
72
+ (see 'trie' dependencies DAG on Figure 1. as an example).
73
+
74
+ !['trie' dependencies DAG](./dag_definition_trie.png)
75
+ Figure 1. 'trie' dependencies DAG.
76
+
77
+ The DAG is going to be precise and well arranged knowledge representation.
78
+ It can be used by humans for example to learn a new field of knowledge.
79
+ Specyfing an unambiguous language that experts in a field use to communicate with each other
80
+ will improve the quality and clarity of the communication.
81
+ It can also be used by LLMs (Language Models) as a solid training/tuning data or part of prompting.
82
+
83
+ If one would like to learn a specific part of the knowledge,
84
+ the "Track" concept can be used. Figure 2. shows an example of a "Track" for data structures.
85
+
86
+ !['data_structures' DAG](./dag_track_data_structures.png)
87
+ Figure 2. Circular DAG visualization of 'data_structures' track.
88
+
89
+ ## How?
90
+
91
+ It is a tedious process to create such knowledge structure since one need to have
92
+ a good undestanding of an abstraction level for each definition.
93
+ AI language models can automate some part of the work.
94
+ On the other hand, the creation process allows for a deep understanding
95
+ of the concepts and their unambiguous definitions.
96
+
97
+ Money is a universal motivator and it could be involved in the creation process as well.
98
+ One of ideas to involve money in the process is inspired by the blockchain technology.
99
+ A single block is an update to the existing knowledge structure (a single commit).
100
+ It is not clear yet who is going to be the judge if a specific update request
101
+ should be accepted or rejected.
102
+
103
+ One of the ideas is to involve the current stake/knowledge holders
104
+ with something similar to the Proof-of-Stake.
105
+ The benefits for the knowledge update can be splitted between author(s) and reviewer(s).
106
+ Removing part of the content is going to be rewarded as well.
107
+ The current idea for the creation process is following:
108
+
109
+ - create a PR with proposed changes (additions, removals)
110
+ - selection of reviewers based on the current involvment on the content similar to the proposed one
111
+ - voting/corrections from the reviewers
112
+ - (if voted on) final decision from the project maintainer
113
+ - (if accepted) new knowledge coins are generated for the block (commit)
114
+ - (if accepted) new knowledge coins split between author(s) and reviewer(s)
115
+
116
+ The are several issue to be solved before introducing such process:
117
+ - what is the minimum amount of contribution (size of a minimum block/commit)?
118
+ - should the amount of generated knowledge coins be proportional to the number of signs being changed?
119
+ - how to reduce spam/garbage PRs (there could be too many of bad quality PRs due to AI tool capabilities)?
120
+ - how does a transaction of knowledge coins corresponds to the knowledge coin mining?
121
+ - Is the mining only triggered on an PR merge or on transactions as well?
122
+
123
+ ## Mentioned materials
124
+
125
+ 1. "A Common Sense View of Knowledge Graphs", Mike Bergman, https://www.mkbergman.com/2244/a-common-sense-view-of-knowledge-graphs/
126
+
127
+ 2. "Report to ACM: First Glossary of Programming Terminology", Grace Hopper, https://archive.computerhistory.org/resources/text/Knuth_Don_X4100/PDF_index/k-8-pdf/k-8-u2741-2-ACM-Glossary.pdf
128
+
129
+ 3. "ACM Computing Classification System", Association for Computing Machinery, https://dl.acm.org/ccs
130
+
131
+ 4. "IEEE Standard Glossary of Software Engineering Terminology", IEEE, https://ieeexplore.ieee.org/document/159342
132
+
133
+ 5. "Unified Modeling Language", Object Management Group, https://www.omg.org/spec/UML
134
+
135
+ ## Related materials
136
+
137
+ I. "What is Knowledge Representation in Artificial Intelligence?",
138
+ Sumeet Bansal, https://www.analytixlabs.co.in/blog/what-is-knowledge-representation-in-artificial-intelligence
139
+
140
+ II. "Ontology", wikipedia, https://en.wikipedia.org/wiki/Ontology
141
+
142
+ III. "Theory of categories", wikipedia, https://en.wikipedia.org/wiki/Theory_of_categories
143
+
144
+ IV. "Universal (metaphysics)", wikipedia, https://en.wikipedia.org/wiki/Universal_(metaphysics)
145
+
146
+ V. "Class (philosophy)", wikipedia, https://en.wikipedia.org/wiki/Class_(philosophy)
147
+
148
+ VI. "KBpedia", https://kbpedia.org/
149
+
150
+ VII. "Charles Sanders Peirce", wikipedia, https://en.wikipedia.org/wiki/Charles_Sanders_Peirce
151
+
152
+ VIII. "A Knowledge Representation Practionary", Michael K. Bergman, https://www.mkbergman.com/a-knowledge-representation-practionary/
@@ -0,0 +1,7 @@
1
+ README.md
2
+ pyproject.toml
3
+ src/definit.egg-info/PKG-INFO
4
+ src/definit.egg-info/SOURCES.txt
5
+ src/definit.egg-info/dependency_links.txt
6
+ src/definit.egg-info/requires.txt
7
+ src/definit.egg-info/top_level.txt
@@ -0,0 +1,3 @@
1
+ networkx
2
+ matplotlib
3
+ definit-db-md==0.5.0