diff --git a/README.md b/README.md index 22b5015..47c6b8d 100644 --- a/README.md +++ b/README.md @@ -4,34 +4,38 @@ *DefinIT* is a terminology structured into a directed acyclic graph (DAG). The project aims to create a hierarchy of precise and unambiguous terminologies for knowledge fields and academic disciplines. DefinIT removes ambiguity and redundancy in how concepts are defined across domains. -#### Definition description +### Definition description -Definition can be a word or a phrase that represent a broad category, concept, or a specific instance/entity. For instance, *car*, *list*, *human*, *country* represent *general terms*. *My car*, *your todo list*, *Albert Einstein*, *Poland* are singular instances of these general terms or so called *singular terms*[6]. *DefinIT* mainly focus on *general terms*, but it does not exclude *singular terms*. +Definition can be a word or a phrase that represent a broad category, concept, or a specific instance/entity. For instance, *car*, *list*, *human*, *country* represent *general terms*. *My car*, *your todo list*, *Albert Einstein*, *Poland* are singular instances of these general terms or so called *singular terms*. *DefinIT* mainly focus on *general terms* (or *classes*, or *universals*), but it does not exclude *singular terms* (or *instances*, or *particulars*). -#### DefinIT structure +### DefinIT structure *DefinIT* can be also defined as a kind of a Knowledge Graph[1]. DAG structure constrains the possible connections between definitions. Directed “is based on” relation is the only kind of connection between definitions. The most fundamental definitions (roots) form the foundation of the hierarchy and are independent of any other terms. They can be clearly described without usage of other definitions. Definition dependencies define the definition level. Over time, the DAG can be updated with more precise and better placed definitions. It is a kind of living, systematic creation of a terminology for a specific field. -#### Definition properties +### Definition properties -##### ID +#### ID The definition name and the definition field together form a unique identifier for each definition (`definition_id = /`). Since the field is part of the unique identifier, we can have multiple definitions with the same name but different fields e.g. "number" in mathematics and "number" in computer science may be understood differently. -##### Field +#### Field Each definition belongs to exactly one *field* (e.g. `mathematics`, `computer_science`). The field is used for grouping and navigating through definitions (see the `mathematics/fundamental` DAG visualized on Figure 1. as an example). -##### Content +#### Content The main part of the definition is its content, which provides the actual explanation or description of the concept. It also includes references to other definitions. A definition content can and should be updated (by contributors, experts, LLM-assisted tools, etc.) over time to reflect new knowledge or improve clarity. +#### Use case [OPTIONAL] + +An real-life example of how the definition is used in practice. It can be a sentence or a paragraph. It should not contain any higher-level definitions. It can be used to illustrate the definition's meaning and provide context for its application. + !['mathematics/fundamental' DAG](./mathematics_fundamental.png) Figure 1. Circular DAG visualization of `mathematics` definitions. ## Project rationalization -#### Where the idea comes from? +### Where the idea comes from? First principles thinking is the act of boiling a process down to the fundamental parts that you know are true and building up from there. It is a way of understanding the world by breaking down complex problems into their most basic elements. @@ -43,7 +47,9 @@ Keeping the DAG structure enforce us to build a definition on top of the more ge !['trie' dependencies DAG](./dag_definition_trie.png) Figure 2. 'trie' dependencies DAG. -#### Literature Review +### Literature Review + +#### Standardized vocabularies in computing In the early stages of the field, the importance of a unambiguous expert language has been highlighted. In 1954, Grace Hopper, a pioneer in computer programming, wrote a "First Glossary of Programming Terminology"[2]. @@ -67,9 +73,31 @@ In the 2000s and beyond, the rise of the internet and online resources led to th Many universities and organizations began to publish their own glossaries and dictionaries, and online platforms like Wikipedia became valuable resources for finding definitions and explanations of computer science terms. -While earlier projects focused on nomenclature within a single field, DefinIT generalizes this approach across disciplines and formalizes the relationships between definitions themselves. +#### Terminology science + +Terminology science studies concepts, conceptual systems and their labels (terms), in contrast to lexicography, which studies words and their meanings. Its foundation is the General Theory of Terminology of Eugen Wüster [6], which treats a discipline's concepts as a structured system to which terms are then assigned. Later schools — the communicative theory of terminology [7], the sociocognitive approach [8] and frame-based terminology [9] — relativized the ideal of fully crisp, context-independent concepts. DefinIT stands in the concept-first (onomasiological) tradition: the definition object is primary, while its name and aliases are labels attached to it. + +#### Philosophy of definitions + +The philosophy of definition distinguishes real from nominal definitions and stipulative, descriptive, explicative and ostensive definitions, and formulates two classical criteria: conservativeness (a definition should not let us establish new claims) and eliminability (the defined term should be replaceable by its definiens) [10]. It has also long been observed that definitional chains cannot regress forever: ultimately they must terminate in terms that are understood directly — Russell argued that all nominal definitions "must lead ultimately to terms having only ostensive definitions" [10]. DefinIT operationalizes this regress as an explicit data structure: root definitions are such primitives, and the acyclicity constraint rules out definitional circularity by construction. + +#### Symbol grounding + +The symbol grounding problem is the problem of how the meaning of symbols can be intrinsic to a symbol system rather than "parasitic on the meanings in our heads": a dictionary followed blindly cycles endlessly from one definition to another [11]. Blondin Massé, Harnad et al. formalized dictionary graphs and defined the reachable set of a vocabulary: everything that can be learned through definitions alone once a smaller kernel vocabulary is already grounded [12]. DefinIT's roots play exactly the role of such a kernel[13] (which is an empty set) — they must be understandable without reference to other definitions — and every non-root definition is reachable from them along explicit "is based on" edges. -#### Applications of DefinIT +#### Prerequisite structures in education + +Educational research has long emphasized the role of prior knowledge: in Ausubel's words, "the most important single factor influencing learning is what the learner already knows" [14][15]. Concept maps were developed by Novak to represent meaningful learning as networks of concepts connected by labeled linking phrases [15]. Knowledge space theory, introduced by Doignon and Falmagne [16] and applied in tutoring systems such as ALEKS, models a discipline as a set of concepts ordered by prerequisite relations. The "is based on" DAG of DefinIT is a curated prerequisite structure: given a definition, the definitions it ultimately builds on form a ready-made learning path, and definition levels reflect prerequisite depth. + +#### Knowledge graphs, thesauri and ontologies + +Semantic networks date back at least to Porphyry's commentary on Aristotle's categories and were implemented computationally by Richens (1956) and Quillian in the 1960s [17]. WordNet groups words into synsets linked by relations such as hypernymy and hyponymy [18]. SKOS is the W3C recommendation for publishing thesauri, classifications and controlled vocabularies as linked data [19]. The Gene Ontology organizes tens of thousands of terms covering three domains of biology in a directed acyclic graph using a small set of relations (`is_a`, `part_of`) [20]. What distinguishes DefinIT from these systems is the relation discipline and the role of content: there is exactly one relation type ("is based on"), it is enforced to be acyclic, and each node carries a curated, evolvable definition rather than serving as a label for entities. + +#### Positioning + +Earlier efforts concentrated on nomenclature within a single field. DefinIT generalizes the approach across disciplines and makes the dependency structure between definitions itself a first-class, versioned, machine-processable artifact constrained to a single acyclic relation. + +### Applications of DefinIT - Learning a new field of knowledge. - Deepening understanding of a specific topic/term. @@ -94,9 +122,37 @@ It is a tedious process to create such knowledge structure. A solid understandin 5. "Unified Modeling Language", Object Management Group, https://www.omg.org/spec/UML -6. "Singular term", Wikipedia, https://en.wikipedia.org/wiki/Singular_term +6. E. Wüster, "Einführung in die allgemeine Terminologielehre und terminologische Lexikographie", Springer, 1979. + +7. M. T. Cabré, "La terminología: representación y comunicación", Empúries, 1999. -## Related materials +8. R. Temmerman, "Towards New Ways of Terminology Description: The Sociocognitive Approach", John Benjamins, 2000. + +9. P. Faber et al., "Process-oriented terminology management in the domain of Coastal Engineering", Terminology 12(2), 2006. + +10. "Definitions", Stanford Encyclopedia of Philosophy, https://plato.stanford.edu/entries/definitions/ + +11. S. Harnad, "The Symbol Grounding Problem", Physica D 42(1-3), 1990. + +12. A. Blondin Massé, G. Chicoisne, Y. Gargouri, S. Harnad, O. Picard, O. Marcotte, "How Is Meaning Grounded in Dictionary Definitions?", TextGraphs-3 at COLING 2008, https://arxiv.org/abs/0806.3710 + +13. Olivier Picard, Alexandre Blondin Masse, and others, "Hierarchies in Dictionary Definition Space", 2009, https://arxiv.org/abs/0911.5703v1 + +14. D. P. Ausubel, "Educational Psychology: A Cognitive View", Holt, Rinehart and Winston, 1968. + +15. J. D. Novak, D. B. Gowin, "Learning How to Learn", Cambridge University Press, 1984. + +16. J.-P. Doignon, J.-C. Falmagne, "Spaces for the assessment of knowledge", International Journal of Man-Machine Studies 29(2), 1985. + +17. J. F. Sowa, "Semantic Networks", Encyclopedia of Artificial Intelligence, Wiley, 1987. + +18. G. A. Miller, "WordNet: A Lexical Database for English", Communications of the ACM 38(11), 1995. + +19. A. Miles, S. Bechhofer (eds.), "SKOS Simple Knowledge Organization System Reference", W3C Recommendation, 2009, https://www.w3.org/TR/skos-reference/ + +20. The Gene Ontology Consortium, "Gene ontology: tool for the unification of biology", Nature Genetics 25(1), 2000. + +## Related materials/concepts/links (not referenced in the text) I. "What is Knowledge Representation in Artificial Intelligence?", Sumeet Bansal, https://www.analytixlabs.co.in/blog/what-is-knowledge-representation-in-artificial-intelligence @@ -115,6 +171,70 @@ VII. "Charles Sanders Peirce", wikipedia, https://en.wikipedia.org/wiki/Charles_ VIII. "A Knowledge Representation Practionary", Michael K. Bergman, https://www.mkbergman.com/a-knowledge-representation-practionary/ +IX. "Knowledge space", wikipedia, https://en.wikipedia.org/wiki/Knowledge_space + +X. "Concept map", wikipedia, https://en.wikipedia.org/wiki/Concept_map + +XI. "WordNet", wikipedia, https://en.wikipedia.org/wiki/WordNet + +XII. "Gene Ontology", wikipedia, https://en.wikipedia.org/wiki/Gene_Ontology + +XIII. "Semantic network", wikipedia, https://en.wikipedia.org/wiki/Semantic_network + +XIV. "Formal concept analysis", wikipedia, https://en.wikipedia.org/wiki/Formal_concept_analysis + +XV. "Metamath", wikipedia, https://en.wikipedia.org/wiki/Metamath + +XVI. "Symbol grounding problem", wikipedia, https://en.wikipedia.org/wiki/Symbol_grounding_problem + +XVII. "Applying Terminological Methods to Lexicographic Work: Terms and Their Domains", Ana Salgado/Rute Costa/Toma Tasovac, https://d-nb.info/1277050627/34 + +XVIII. "International Information Centre for Terminology", wikipedia, https://en.wikipedia.org/wiki/Infoterm + +XIX. "Wüster’s View of Terminology", Mitja Trojar, https://www.academia.edu/34943245/W%C3%BCsters_View_of_Terminology + +XX. "The General Theory of Terminology: A Literature Review and a Critical discussion.", Kirsten Packeiser + +XXI. "Conceptual graph", John Florian Sowa, https://en.wikipedia.org/wiki/Conceptual_graph + +XXII. "Partial order", https://en.wikipedia.org/wiki/Partially_ordered_set + +XXIII. "Topological sorting", https://en.wikipedia.org/wiki/Topological_sorting + +XXIV. "Educational prerequirement"/"Educational prerequisite" + +XXV. "Hypernymy and hyponymy", https://en.wikipedia.org/wiki/Hypernymy_and_hyponymy + +XXVI. "Synonymy and polysemy", Jiwei Ci, https://www.sciencedirect.com/science/article/abs/pii/0024384187900507 + +XXVII. "Unit of understanding", Rita Temmerman, https://www.jbe-platform.com/content/books/9789027257789-tlrp.23.15tem, https://scispace.com/pdf/towards-new-ways-of-terminology-description-the-4suqi4tgj1.pdf + +XXVIII. "Infinite regress", wikipedia, https://en.wikipedia.org/wiki/Infinite_regress + +XXIX. "Definienda/definientes" + +XXX. "Disambiguation of a dictionary" + +XXXI. "Knowledge space", wikipedia, https://en.wikipedia.org/wiki/Knowledge_space + +XXXII. "Singular term", Wikipedia, https://en.wikipedia.org/wiki/Singular_term + +XXXIII. "Terminology", Wikipedia, https://en.wikipedia.org/wiki/Terminology_science + +XXXIV. "Semantic Networks", John F. Sowa, https://www.jfsowa.com/pubs/semnet.htm + +XXXV. "The GO hierarchy", https://www.geneontology.org/docs/ontology-documentation/ + +XXXVI. "Ontology relations", https://www.geneontology.org/docs/ontology-relations/ + +XXXVII. "Theory of descriptions", https://en.wikipedia.org/wiki/Theory_of_descriptions + +XXXVIII. "Logical atomism", https://en.wikipedia.org/wiki/Logical_atomism + +XXXIX. "Metaphysics", https://en.wikipedia.org/wiki/Metaphysics + +XL. + ## For developers ## Python package diff --git a/presentation/pycon_wroclaw/img/adapter.png b/presentation/pycon_wroclaw/img/adapter.png new file mode 100644 index 0000000..f2b2583 Binary files /dev/null and b/presentation/pycon_wroclaw/img/adapter.png differ diff --git a/presentation/pycon_wroclaw/img/andersen.jpg b/presentation/pycon_wroclaw/img/andersen.jpg new file mode 100644 index 0000000..53a8ce3 Binary files /dev/null and b/presentation/pycon_wroclaw/img/andersen.jpg differ diff --git a/presentation/pycon_wroclaw/img/cell.jpg b/presentation/pycon_wroclaw/img/cell.jpg new file mode 100644 index 0000000..ceaa62e Binary files /dev/null and b/presentation/pycon_wroclaw/img/cell.jpg differ diff --git a/presentation/pycon_wroclaw/img/demo.png b/presentation/pycon_wroclaw/img/demo.png new file mode 100644 index 0000000..0b8e80b Binary files /dev/null and b/presentation/pycon_wroclaw/img/demo.png differ diff --git a/presentation/pycon_wroclaw/img/football.JPG b/presentation/pycon_wroclaw/img/football.JPG new file mode 100644 index 0000000..df3d2ff Binary files /dev/null and b/presentation/pycon_wroclaw/img/football.JPG differ diff --git a/presentation/pycon_wroclaw/img/magic.webp b/presentation/pycon_wroclaw/img/magic.webp new file mode 100644 index 0000000..84f6f49 Binary files /dev/null and b/presentation/pycon_wroclaw/img/magic.webp differ diff --git a/presentation/pycon_wroclaw/img/mandelbrot_set.jpg b/presentation/pycon_wroclaw/img/mandelbrot_set.jpg new file mode 100644 index 0000000..ca414ef Binary files /dev/null and b/presentation/pycon_wroclaw/img/mandelbrot_set.jpg differ diff --git a/presentation/pycon_wroclaw/img/orsted-experiment.webp b/presentation/pycon_wroclaw/img/orsted-experiment.webp new file mode 100644 index 0000000..37cefea Binary files /dev/null and b/presentation/pycon_wroclaw/img/orsted-experiment.webp differ diff --git a/presentation/pycon_wroclaw/img/orsted.jpg b/presentation/pycon_wroclaw/img/orsted.jpg new file mode 100644 index 0000000..1c18f22 Binary files /dev/null and b/presentation/pycon_wroclaw/img/orsted.jpg differ diff --git a/presentation/pycon_wroclaw/img/patterns.jpg b/presentation/pycon_wroclaw/img/patterns.jpg new file mode 100644 index 0000000..5e0e8b3 Binary files /dev/null and b/presentation/pycon_wroclaw/img/patterns.jpg differ diff --git a/presentation/pycon_wroclaw/img/philosophers.jpeg b/presentation/pycon_wroclaw/img/philosophers.jpeg new file mode 100644 index 0000000..36f8a8c Binary files /dev/null and b/presentation/pycon_wroclaw/img/philosophers.jpeg differ diff --git a/presentation/pycon_wroclaw/img/ping-pong.jpeg b/presentation/pycon_wroclaw/img/ping-pong.jpeg new file mode 100644 index 0000000..0a1e550 Binary files /dev/null and b/presentation/pycon_wroclaw/img/ping-pong.jpeg differ diff --git a/presentation/pycon_wroclaw/img/qr-platform.svg b/presentation/pycon_wroclaw/img/qr-platform.svg new file mode 100644 index 0000000..cc9e52c --- /dev/null +++ b/presentation/pycon_wroclaw/img/qr-platform.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/presentation/pycon_wroclaw/img/senior-developer.jpeg b/presentation/pycon_wroclaw/img/senior-developer.jpeg new file mode 100644 index 0000000..f6a6b1a Binary files /dev/null and b/presentation/pycon_wroclaw/img/senior-developer.jpeg differ diff --git a/presentation/pycon_wroclaw/img/snowboard.HEIC b/presentation/pycon_wroclaw/img/snowboard.HEIC new file mode 100644 index 0000000..bf70bbb Binary files /dev/null and b/presentation/pycon_wroclaw/img/snowboard.HEIC differ diff --git a/presentation/pycon_wroclaw/img/theory.png b/presentation/pycon_wroclaw/img/theory.png new file mode 100644 index 0000000..019cd80 Binary files /dev/null and b/presentation/pycon_wroclaw/img/theory.png differ diff --git a/presentation/pycon_wroclaw/img/thought-experiment.jpg b/presentation/pycon_wroclaw/img/thought-experiment.jpg new file mode 100644 index 0000000..e11f1c3 Binary files /dev/null and b/presentation/pycon_wroclaw/img/thought-experiment.jpg differ diff --git a/presentation/pycon_wroclaw/img/trekking.jpeg b/presentation/pycon_wroclaw/img/trekking.jpeg new file mode 100644 index 0000000..23232ec Binary files /dev/null and b/presentation/pycon_wroclaw/img/trekking.jpeg differ diff --git a/presentation/pycon_wroclaw/slides_scratch.md b/presentation/pycon_wroclaw/slides_scratch.md new file mode 100644 index 0000000..f48df2b --- /dev/null +++ b/presentation/pycon_wroclaw/slides_scratch.md @@ -0,0 +1,193 @@ +# DefinITely, the most boring learning content you will ever see! + +## Intro + +### More Philosophy than Python + +I: [philosophers.jpg] + +### Learning platform based on DefinIT project + +I: [qr-platform.svg] + +C: k4liber.github.io/definit-dsa + +Notes: + +DefinIT learning platform is a web application that allows users to learn specific topic in a very structured way. The learning platform is only one of the possible use cases of the DefinIT project. The main goal of the DefinIT project is to create a standardized and unambiguous terminology, which can be used in various applications, including learning platforms. + +### Learning platform based on DefinIT project + +I: [qr-platform.svg] + +C: "Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away." ~ Antoine de Saint-Exupéry + +### Demo + +I: [demo.png] + +C: Showcase of http://k4liber.github.io/definit-dsa + +## About Me (3 slides) + +### Jan Bielecki (1994 - ?) + +I: [senior-developer.jpeg] + +C: Senior Full Stack Developer at Ørsted + +### Jan Bielecki (1994 - ?) + +I: [magic.webp] + +C: "Any sufficiently advanced technology is indistinguishable from magic." ~ Arthur C. Clarke + +Notes: + +Technology/Engineering is kind of a hacking of the universe, a way to understand and manipulate the world around us. + +### Jan Bielecki (1994 - ?) + +ITL: [football.JPG] + +ITR: [snowboard.HEIC] + +IBL: [ping-pong.jpeg] + +IBR: [trekking.jpeg] + +C: Football, Fusbal, Foosball, Running, Calistenics, Ping-pong, Trekking, Snowboarding + +## About Ørsted (3 slides) + +### Hans Christian Ørsted (1777 – 1851) + +IL: [orsted.jpg] + +IR: [andersen.jpg] + +C: Close friend of a Hans Christian Andersen (1805 – 1875, author of many fairy tales, including "The Little Mermaid" and "The Ugly Duckling") + +### Hans Christian Ørsted (1777 – 1851) + +I: [thought-experiment.jpg] + +C: First to explicitly describe and name the "thought experiment" + +### Hans Christian Ørsted (1777 – 1851) + +I: [orsted-experiment.jpg] + +C: In 1820, Ørsted published his discovery that a compass needle was deflected from magnetic north by a nearby electric current, confirming a direct relationship between electricity and magnetism. + +S: https://subratachak.wordpress.com/2017/12/16/oerstead/ + +## DefinIT description + +### Definitions as "patterns in the universe" + +I: [patterns.jpg] + +C: Patterns in math, astronomy, biology. + +### Definitions as "patterns in the universe" + +I: [patterns.jpg] + +C: Patterns in math, astronomy, biology. + +R: https://www.myclaritycenter.com/post/sacred-geometry + +### Definitions as "patterns in the universe" + +I: [adapter.png] + +C: Software design patterns. + +R: https://thecodinggopher.substack.com/p/the-adapter-design-pattern + +### The theory of acyclic references in terminology + +I: [cell.jpg] + +C: Mitochondria can be described without referring to the cell. + +N: Set of definitions is called terminology. A terminology is acyclic if it does not contain any circular references between definitions. + +### Naming does not matter + +TODO + +### An experiment to "prove the theory" + +I: [theory.png] + +C: "In theory, there is no difference between theory and practice. But in practice, there is." ~ Benjamin Brewster + +N: Just an intro. The full description will be presented in the section "Data Structures and Algorithms course". + +## Literature review + +### Standardized vocabularies in computing + +#### Grace Hopper + +### Terminology science + +#### Eugen Wüster + +##### Naming does not matter + +##### Esperanto + +### Philosophy of definitions + +#### Bertrand Russell + +#### Logical atomism + +#### Mandelbrot set + +I: [mandelbrot_set.jpg] + +C: Mandelbrot Set, being indisputably complex, uses a simple recursive equation: \(z_{n+1} = z_n^2 + c\), starting with z₀ = 0. + +#### Conway's Game of Life + +### Organized hierarchies in Dictionaries + +https://www.sciencedirect.com/science/article/abs/pii/S1389041708000120 + +## Data Structures and Algorithms course + +### How it was created + +### Statistics + +### Issues + +## Further work + +### [MUST HAVE] Write a paper + +### [NICE TO HAVE] Create the next course + +N: Mind the "abstraction level" of the course, it should be just above the level of DSA course, so it can reuse the same definitions. + +### [NICE TO HAVE] Other applications + +#### [NICE TO HAVE] Other applications + +C: Food for LLMs - maybe finetuning? + +N: The definitions are suppose to have a high quality. + +#### [NICE TO HAVE] Other applications + +C: Reducing the number of books/articles + +#### [NICE TO HAVE] Other applications + +C: New kind of science + +## Thank you slide diff --git a/todos.md b/todos.md index 2dd9810..c03e90f 100644 --- a/todos.md +++ b/todos.md @@ -10,10 +10,22 @@ Each item should have a title, a description, and a list of tasks to be complete ## IN PROGRESS -## TODO - ### 7. [docs] Re-do the literature review and update the README with the new references +Survey the literature beyond the historical CS glossaries (Hopper, ACM CCS, IEEE, UML) to position DefinIT against existing concepts, and refresh the README references. + +- [x] Review terminology science (Wüster's General Theory of Terminology and later schools). +- [x] Review philosophy of definitions (SEP: real/nominal, stipulative/descriptive/explicative, conservativeness & eliminability). +- [x] Review symbol grounding (Harnad; Blondin Massé et al. reachable sets) as the formal basis for roots/kernels. +- [x] Review prerequisite structures in education (Ausubel, Novak's concept maps, knowledge space theory). +- [x] Review knowledge organization systems (semantic networks, WordNet, SKOS, Gene Ontology DAG). +- [x] Review formal mathematics (Metamath) for the axioms/roots analogy. +- [x] Rewrite the README literature review with thematic subsections and a positioning statement. +- [x] Extend "Mentioned materials" (refs 7-22) and "Related materials" (IX-XVI). +- [ ] Review the changes [HUMAN] and update the README accordingly. + +## TODO + ### 4. [docs] Update the README to reflect last changes ### 5. [devops] Github Action to deploy the package to PyPI