pyegeria 5.3.9.9.3__py3-none-any.whl → 5.3.9.9.5__py3-none-any.whl

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.
Files changed (58) hide show
  1. md_processing/__init__.py +49 -0
  2. md_processing/dr_egeria_inbox/archive/dr_egeria_intro.md +254 -0
  3. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_more_terms.md +696 -0
  4. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part1.md +254 -0
  5. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part2.md +298 -0
  6. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part3.md +608 -0
  7. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part4.md +94 -0
  8. md_processing/dr_egeria_inbox/archive/freddie_intro.md +284 -0
  9. md_processing/dr_egeria_inbox/archive/freddie_intro_orig.md +275 -0
  10. md_processing/dr_egeria_inbox/archive/test-term.md +110 -0
  11. md_processing/dr_egeria_inbox/cat_test.md +100 -0
  12. md_processing/dr_egeria_inbox/commands.json +3252 -0
  13. md_processing/dr_egeria_inbox/data_field.md +54 -0
  14. md_processing/dr_egeria_inbox/data_spec.md +77 -0
  15. md_processing/dr_egeria_inbox/data_spec_test.md +2406 -0
  16. md_processing/dr_egeria_inbox/data_test.md +86 -0
  17. md_processing/dr_egeria_inbox/dr_egeria_intro_categories.md +168 -0
  18. md_processing/dr_egeria_inbox/dr_egeria_intro_part1.md +280 -0
  19. md_processing/dr_egeria_inbox/dr_egeria_intro_part2.md +313 -0
  20. md_processing/dr_egeria_inbox/dr_egeria_intro_part3.md +1073 -0
  21. md_processing/dr_egeria_inbox/dr_egeria_isc1.md +44 -0
  22. md_processing/dr_egeria_inbox/glossary_creation_experiment.ipynb +341 -0
  23. md_processing/dr_egeria_inbox/glossary_test1.md +324 -0
  24. md_processing/dr_egeria_inbox/rel.md +8 -0
  25. md_processing/dr_egeria_inbox/sb.md +119 -0
  26. md_processing/dr_egeria_inbox/search_test.md +39 -0
  27. md_processing/dr_egeria_inbox/solution-components.md +154 -0
  28. md_processing/dr_egeria_inbox/solution_blueprints.md +118 -0
  29. md_processing/dr_egeria_inbox/synonym_test.md +42 -0
  30. md_processing/dr_egeria_inbox/t1.md +0 -0
  31. md_processing/dr_egeria_inbox/t2.md +268 -0
  32. md_processing/dr_egeria_outbox/processed-2025-05-15 19:52-data_test.md +94 -0
  33. md_processing/dr_egeria_outbox/processed-2025-05-16 07:39-data_test.md +88 -0
  34. md_processing/dr_egeria_outbox/processed-2025-05-17 16:01-data_field.md +56 -0
  35. md_processing/dr_egeria_outbox/processed-2025-05-18 15:51-data_test.md +103 -0
  36. md_processing/dr_egeria_outbox/processed-2025-05-18 16:47-data_test.md +94 -0
  37. md_processing/dr_egeria_outbox/processed-2025-05-19 07:14-data_test.md +96 -0
  38. md_processing/dr_egeria_outbox/processed-2025-05-19 07:20-data_test.md +100 -0
  39. md_processing/dr_egeria_outbox/processed-2025-05-19 07:22-data_test.md +88 -0
  40. md_processing/dr_egeria_outbox/processed-2025-05-19 09:26-data_test.md +91 -0
  41. md_processing/dr_egeria_outbox/processed-2025-05-19 10:27-data_test.md +91 -0
  42. md_processing/md_commands/__init__.py +3 -0
  43. md_processing/md_commands/blueprint_commands.py +303 -0
  44. md_processing/md_commands/data_designer_commands.py +1183 -0
  45. md_processing/md_commands/glossary_commands.py +1144 -0
  46. md_processing/md_commands/project_commands.py +163 -0
  47. md_processing/md_processing_utils/__init__.py +4 -0
  48. md_processing/md_processing_utils/common_md_proc_utils.py +724 -0
  49. md_processing/md_processing_utils/common_md_utils.py +172 -0
  50. md_processing/md_processing_utils/extraction_utils.py +486 -0
  51. md_processing/md_processing_utils/md_processing_constants.py +122 -0
  52. md_processing/md_processing_utils/message_constants.py +19 -0
  53. pyegeria/data_designer_omvs.py +4 -3
  54. {pyegeria-5.3.9.9.3.dist-info → pyegeria-5.3.9.9.5.dist-info}/METADATA +1 -2
  55. {pyegeria-5.3.9.9.3.dist-info → pyegeria-5.3.9.9.5.dist-info}/RECORD +58 -6
  56. {pyegeria-5.3.9.9.3.dist-info → pyegeria-5.3.9.9.5.dist-info}/LICENSE +0 -0
  57. {pyegeria-5.3.9.9.3.dist-info → pyegeria-5.3.9.9.5.dist-info}/WHEEL +0 -0
  58. {pyegeria-5.3.9.9.3.dist-info → pyegeria-5.3.9.9.5.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,254 @@
1
+ # Introduction to Dr.Egeria - an Egeria Markdown Processor
2
+
3
+
4
+ A constant challenge in managing information is gathering enough metadata about the information to
5
+ allow us to manage it. A common approach is to build fancy graphical user interfaces hoping that they
6
+ will be attractive enough and easy enough to use that people will do so.
7
+
8
+ Unfortunately, however, this ignores the fundamental fact that to use one of these nice GUI
9
+ applications, you have to step away from the tools and processes that you were in the midst of performing.
10
+ You have to leave your world and enter a new, often less familiar one.
11
+
12
+ Dr.Egeria, is an experiment in turning this around. Its not that fancy graphical user
13
+ interfaces don't have a role - but rather, to look at what we can do to support the
14
+ tools and approaches people already use. And maybe even make their day job a little
15
+ easier and a little more enjoyable.
16
+
17
+ So this is what we are exploring with Dr.Egeria. An Egeria Markdown language that allows
18
+ users to intermix requests to Egeria with other text through the use of standard Markdown. The markdown text
19
+ that we process can be in standard markdown (.md) files, in Jupyter notebooks, and perhaps other file formats.
20
+
21
+ This markdown file is an example. You will see that we intersperse normal narrative text (such as this)
22
+ with Commands to Egeria. We introduce a specific vocabulary to make Egeria requests.
23
+
24
+ In the example below we will create a new Egeria glossary to hold definitions related to Dr.Egeria.
25
+ We will then show how we can process this file which will record the information into Egeria and create a new
26
+ output file that acts as both a receipt showing what was processed as well as a starting point for making updates.
27
+
28
+ So here we go! First lets define a new Glossary::
29
+
30
+ ___
31
+
32
+ # Create Glossary
33
+
34
+ ## Glossary Name
35
+
36
+ Egeria-Markdown
37
+
38
+ ## Language
39
+
40
+ English
41
+
42
+ ## Description
43
+
44
+ Glossary to describe the vocabulary of Dr.Egeria - an Egeria Markdown language to support the exchange of metadata in a Markdown form.
45
+ Dr.Egeria allows users to input metadata using any text entry system that supports the entry of standard Markdown
46
+ notation and through post-processing
47
+ commands, validates the Egeria content and allows the requests to be sent to Egeria.
48
+
49
+ ## Usage
50
+
51
+ 1. (optional) load an example or template for the type of object from Egeria.
52
+ 2. Create a new document (perhaps from a template) and edit it, adding in the content with the Dr.Egeria controlled Markdown language.
53
+ 3. Process the document to validate and display it before you submit it, Validation may annotate your document with recommendations and potential issues.
54
+ 4. Submit the document to Egeria using the Dr.Egeria commands.
55
+
56
+
57
+ ___
58
+
59
+
60
+
61
+
62
+ # First Walk-Through
63
+ The block of markdown above is a request to create a new Egeria Glossary called `Egeria-Markdown`. Let's briefly walk
64
+ through. The command starts when we see `# Create Glossary`. This is a known phrase in Dr.Egeria. When we see this
65
+ phrase we recognize that this is an Egeria markdown request block. The request block ends if we encounter another `#` or
66
+ `___`, or run out of text. Within this request block we note some **attributes** that begin with a `## `. The first that we encounter is `## Glossary Name`. Not all attributes need to be filled in. Later, we'll process this file and demonstrate how to tell - but first, lets look at the attributes shown:
67
+
68
+ * `## Glossary Name` - this is the display name of the glossary. In this case the name is `Egeria-Markdown` As you can see, the value of the attribute is the plain text that follows it.
69
+ * `## Language` - what language will the terms of the glossary be in (yes there are ways to have mixed language but Dr.Egeria strives to be as simple as possible).
70
+ * `## Description` - a description of the glossary and its purpose.
71
+ * `## Usage` - how the glossary is meant to be used and by whom.
72
+ * `## <Qualified Name>` - every element in Egeria must have a unique qualified name that we use to distinguish it from all other elements. The qualified name is meant to be understandable by humans, although it may follow formatting conventions. This attributes is in angle brackets because at this point we can't fill it in -
73
+ we are just in the midst of creating the glossary. A qualified name will be created for us as part of the glossary creation. We'll see a little later how we get that.
74
+ * `## <GUID>` - same story as qualified name except that this is meant for automation and not people.
75
+
76
+ And that's it. That's all we need to do to specify the creation of a new glossary (well - mostly - we'll reveal a few
77
+ more details a bit later).
78
+
79
+ ## Great! That was easy!
80
+
81
+ We now have a nice, clean, new...and empty...glossary - guess we better start filling it. Lets create a couple of terms.
82
+
83
+ ___
84
+
85
+ # Create Term
86
+
87
+ ## Term Name
88
+
89
+ Command
90
+
91
+ ## In Glossary
92
+
93
+ Glossary::Egeria-Markdown
94
+
95
+
96
+ ## Summary
97
+
98
+ Commands are how a user of the Freddie markdown language requests an action.
99
+
100
+ ## Description
101
+
102
+ Commands are how a user can request Egeria to take an action such as Create or Update an Egeria element. Freddie
103
+ provides a limited (but growing) set of commands. Freddie commands align with the pyegeria 'hey-egeria'
104
+ command line interface.
105
+
106
+ ## Abbreviation
107
+
108
+ ## Examples
109
+
110
+ Create Glossary or
111
+ Update Glossary or
112
+ Create Term or
113
+ Update Term
114
+
115
+ ## Usage
116
+
117
+ Commands are used in the Freddie Egeria markdown language.
118
+
119
+ ## Version
120
+
121
+ 0.1
122
+
123
+ ## Status
124
+
125
+
126
+ ## <Qualified Name>
127
+
128
+ ## <GUID>
129
+
130
+ ___
131
+
132
+ # Create Term
133
+
134
+ ## In Glossary
135
+
136
+ Glossary::Egeria-Markdown
137
+
138
+ ## Term Name
139
+
140
+ Source
141
+
142
+ ## Summary
143
+
144
+ Source of the markdown content.
145
+
146
+ ## Description
147
+
148
+ Source of the markdown content - could be jupter or plain markdown file.
149
+
150
+ ## Abbreviation
151
+
152
+ ## Examples
153
+
154
+ ## Usage
155
+
156
+ ## Version
157
+
158
+ 0.1
159
+
160
+ ## Status
161
+
162
+ DRAFT
163
+
164
+
165
+ ___
166
+
167
+ # Create Term
168
+
169
+ ## In Glossary
170
+
171
+ Glossary::Egeria-Markdown
172
+
173
+ ## Term Name
174
+
175
+ Directive
176
+
177
+ ## Summary
178
+
179
+ A directive defines how the command is to be processed.
180
+
181
+ ## Description
182
+
183
+ Directives are one of:
184
+
185
+ * display - just display what we've found
186
+ * validate - check the validity of the requested action
187
+ * process - process the requested action
188
+
189
+
190
+ ## Version
191
+
192
+ 0.1
193
+
194
+ ## Status
195
+
196
+ DRAFT
197
+
198
+ ___
199
+
200
+ # Some terms specified - Now what?
201
+
202
+ Ok - we've now defined a glossary and three terms to go into the glossary. A few observations.
203
+
204
+ * There is a degree of freedom in writing the definitions. The attributes aren't always in the same
205
+ order and optional attributes don't need to be specified at all. We try to make things as easy as possible to use.
206
+ * We can run a definition file through a validation process to check our proposed definition and provide feedback.
207
+ * When we process a definition we will use the same validation process before trying to update Egeria
208
+ with the requested definitions - requests may get rejected or altered - this will be consistent with the feedback we
209
+ provide during validation.
210
+
211
+ Here is what we'll do next.
212
+
213
+ ## Next
214
+
215
+ >Note: This is changing - so will be somewhat abstract
216
+
217
+ We will run a small program called `dr.egeria.py` to operate on this markdown file. When we run this program we tell it not just the name of the file to process but also provide a directive on what to do. Currently we have the
218
+ choice of:
219
+
220
+ 1. Display - just parse the file, breaking it down into request blocks, and display what we find
221
+ 2. Validate - parse the file and validate if the commands can be processed - showing information about what we observe.
222
+ 3. Process - parse the request blocks and execute the commands - and produce a new output file to simplify further processing.
223
+
224
+
225
+ # Great --> let's give it a try!
226
+
227
+ Ok - its processed the file and generated output to the console that shows us what it has done.
228
+ We also now have a new file in the designated outbox (specified by an Environment Variable).
229
+ If we review that file, we see that it has similar content to this original file except that
230
+ the **Create** statements have been replaced with **Update** statements and
231
+ attributes such as **Qualified **Name** and **GUID** now contain the known values.
232
+
233
+ This means that if we want to make changes to the definitions that we have
234
+ created, all we need to do is to make changes to the updatable attributes in this
235
+ new document and resubmit it - pretty simple.
236
+
237
+ Here is a diagram of this process from the user perspective:
238
+
239
+ ```mermaid
240
+ flowchart TD
241
+ A[Text Editor or Jupyter Notebook] --> B(dr.egeria content)
242
+ B --> C{dr.egeria command}
243
+ C -->|display| D[console output]
244
+ C -->|validate| E[console validation output and file]
245
+ C -->|process| F[console output and processed output file]
246
+ F-->|Additional Updates|A
247
+ E-->|Additional Updates|A
248
+ ```
249
+
250
+ In the next section we'll see how we can update and extend what we have done by creating
251
+ some glossary categories and then assigning categories to the terms.
252
+ To do this we will copy the output document that we just created and call the
253
+ copy dr_egeria_intro_part2.md. The text of the document has also been updated
254
+ to reflect the purpose. Let's open that now!
@@ -0,0 +1,298 @@
1
+ # Demonstrating updates and additions
2
+
3
+ This document was derived from the processing of the file dr_egeria_intro_part1.md; All the Dr.Egeria statements have been
4
+ preserved (including the generated attributes such as the unique GUIDs), and the explanatory text has been replaced.
5
+
6
+ In this document we will add glossary categories, update existing terms to categorize them, and add some new terms that
7
+ further explain dr.egeria. This document is being written off-line (actually on a plane) - demonstrating one of the
8
+ intriguing features of dr.egeria - because its just text, it can be edited anywhere and anytime that there is a text
9
+ editor. Dr.Egeria files can be emailed, sent via text message, slack, or maintained in a `git` repository.
10
+ It's just text with markdown annotations.
11
+
12
+ Ok, let's get started. First, we have the `Update Glossary` command below. There is nothing new we need to add at this
13
+ point so we can just leave it as-is. When this document is processed it will apply updates but if there are none,
14
+ It doesn't matter.
15
+
16
+ However, now is a good time to start to more formally specify the attributes available to `Create` or `Update` glossary
17
+ commands:
18
+
19
+
20
+ | Attribute Name | Input Required? | Read Only | Generated/Default? | Unique? | Notes |
21
+ |:---------------|:----------------|-----------|:-------------------|:--------|:---------------------------------------------------------------------------------------------------------|
22
+ | Glossary Name | Yes | No | No | No | A display name (informal name). |
23
+ | Language | No | No | No | No | The primary language for the glossary. |
24
+ | Description | No | No | No | No | A textual description of this glossary. |
25
+ | Usage | No | No | No | No | How the glossary is meant to be used, and by whom. |
26
+ | Qualified Name | Maybe | No | Yes | Yes | The qualified name can either be provided by the user or generated. If generated, a pattern is followed. |
27
+ | GUID | No | Yes | Yes | Yes | GUIDs are always generated by Egeria. They are meant for automation, not people. |
28
+
29
+ The table above shows us what attributes must be provided and which are optional. Once an object is created, and a qualified name is generated, it is good practice to use it as there can
30
+ be many objects with the same name, and this is a common way to disambiguate them. If you specify an object name (e.g. Glossary Name) and that name already exists, Dr.Egeria will report an error
31
+ and suggest that you provide a **Qualified Name** as well. You will also note that the GUID is generated by Egeria and is read-only. It is possible that some commands
32
+ may require a GUID to be specified, but in general we will use the **Qualified Name** to identify objects.
33
+
34
+ > Comment: In the Egeria and pyegeria APIs, Glossary Name is actually referenced as a **Display Name**. It is perfectly fine for multiple objects to have the same display name.
35
+ > However, it is required that even though the may share the same display name, they must have different qualified names and GUIDs. So if you provide a Glossary Name that already exists,
36
+ > you will get an error message that suggests that you provide a Qualified Name in addition to the Glossary Name.
37
+
38
+ ___
39
+
40
+ # Glossary Categories
41
+
42
+ Sometimes it can be useful to provide more structure to the glossary. The way to do this is through categories.
43
+ In Egeria, a category can have a single parent category and multiple child categories. A term can be assigned to
44
+ multiple categories. When we have a large number of terms, a category structure can be particularly helpful in finding the
45
+ terms that are most relevant to a particular topic. Using categories is optional.
46
+
47
+ Ok, now let's create a couple of glossary categories. They will be:
48
+
49
+ * **Writing Dr.Egeria Markdown** - where we describe elements of the Dr.Egeria language as terms within the category.
50
+ * **Processing Dr.Egeria Markdown** - where we describe the commands for processing Dr.Egeria.
51
+
52
+
53
+ Glossary categories have the following attributes:
54
+
55
+
56
+ | Attribute Name | Input Required? | Read Only | Generated/Default? | Unique? | Notes |
57
+ |:----------------|:----------------|-----------|:-------------------|:--------|:---------------------------------------------------------------------------------------------------------|
58
+ | Category Name | Yes | No | No | No | A display name (informal name). |
59
+ | Owning Glossary | Yes | No | No | Yes | This is the qualified name of the glossary that owns this category. |
60
+ | Description | No | No | No | No | A textual description of this category |
61
+ | Qualified Name | Maybe | No | Yes | Yes | The qualified name can either be provided by the user or generated. If generated, a pattern is followed. |
62
+ | GUID | No | Yes | Yes | Yes | GUIDs are always generated by Egeria. They are meant for automation, not people. |
63
+
64
+ > Note: Qualified Names can either be user specified or generated. If generated the following the form:
65
+ `{local-qualifier}::{type}::{display name}::{version}`. Local-Qualifier is an optional string that can be useful to both disambiguate similar names and to add some local context. Local qualifiers could be set to organization names, functions, business context, etc. The settings for a local qualifier is set either by setting the environment variable `EGERIA_LOCAL_QUALIFIER` or by passing in a parameter when executing one of the Dr.Egeria enabled commands. This could also be set for a team by an Egeria administrator.
66
+
67
+ Ok, here we go:
68
+
69
+ ___
70
+
71
+ # Create Category
72
+
73
+ ## Category Name
74
+
75
+ Writing Dr.Egeria Markdown
76
+
77
+ ## Owning Glossary
78
+
79
+ Glossary::Egeria-Markdown
80
+
81
+ ## Description
82
+
83
+ These terms describe the elements of the Dr.Egeria Markdown language and how to use them.
84
+
85
+
86
+ ___
87
+
88
+ # Create Category
89
+
90
+ ## Category Name
91
+
92
+ Processing Dr.Egeria Markdown
93
+
94
+ ## In Glossary
95
+
96
+ Glossary::Egeria-Markdown
97
+
98
+ ## Description
99
+
100
+ These terms describe commands to process Dr.Egeria Markdown.
101
+
102
+
103
+ ___
104
+
105
+ > Note: If you look at the examples above, you will notice that sometimes we specify **In Glossary** and sometimes we specify **Owning Glossary**.
106
+ > There is no difference. We will have preferred names that we will use when we generate a Dr.Egeria markdown file, but we try
107
+ > to be flexible and allow for common name variations. You will see how we document this as we proceed.
108
+
109
+ Now, let's add categories to the terms. Let's review the attributes of a term:
110
+
111
+
112
+ | Attribute Name | Input Required? | Read Only | Generated/Default? | Unique? | Notes |
113
+ |:----------------|:----------------|:----------|:-------------------|:--------|:---------------------------------------------------------------------------------------------------------------------|
114
+ | Term Name | Yes | No | No | No | A display name (informal name). |
115
+ | Owning Glossary | Yes | No | No | Yes | This is the qualified name of the glossary that owns this term. |
116
+ | Categories | No | No | No | Yes | This is the name of the category. Multiple categories can be assigned, separated by a `,` or line. |
117
+ | Description | No | No | No | No | A textual description of this term |
118
+ | Qualified Name | No | Yes | No | Yes | The qualified name can either be provided by the user or generated. If generated, a pattern is followed. |
119
+ | GUID | No | Yes | Yes | Yes | GUIDs are always generated by Egeria. They are meant for automation, not people. |
120
+
121
+ > When we provide a category name in the `Categories` attribute, We can use either the display name form (Category Name) or the qualified name form. If we find that the display name is not unique,
122
+ > you will need to provide the qualified name. Its safer to use the qualified name, but a little less readable.
123
+
124
+ ___
125
+
126
+ # Update Term
127
+
128
+ ## Term Name
129
+
130
+ Command
131
+
132
+ ## Summary
133
+ Commands are how a user of the Dr.Egeria markdown language requests an action.
134
+
135
+ ## In Glossary
136
+ Glossary::Egeria-Markdown
137
+
138
+ ## Categories
139
+
140
+ Category::Writing Dr.Egeria Markdown, Category::Processing Dr.Egeria Markdown
141
+
142
+ ## Status
143
+ ACTIVE
144
+
145
+ ## Description
146
+ Commands are how a user can request Egeria to take an action such as Create or Update an Egeria element. Freddie
147
+ provides
148
+ a limited (but growing) set of commands. Dr.Egeria commands align with the pyegeria 'hey-egeria' command line interface.
149
+
150
+ ## Examples
151
+ Create Glossary or
152
+ Update Glossary or
153
+ Create Term or
154
+ Update Term
155
+
156
+ ## Usage
157
+ Commands are used in the Dr.Egeria markdown language.
158
+
159
+ ## Published Version
160
+
161
+ 0.2
162
+
163
+ ## Qualified Name
164
+
165
+
166
+
167
+ ___
168
+
169
+ # Update Term
170
+
171
+ ## Term Name
172
+
173
+ Source
174
+
175
+ ## Summary
176
+ Source of the markdown content.
177
+
178
+ ## In Glossary
179
+ Glossary::Egeria-Markdown
180
+
181
+ ## Categories
182
+
183
+ Processing Dr.Egeria Markdown
184
+
185
+ ## Status
186
+ ACTIVE
187
+
188
+ ## Description
189
+ Source of the markdown content - could be jupyter or plain markdown file.
190
+
191
+ ## Examples
192
+
193
+ ## Usage
194
+
195
+
196
+ ## Published Version
197
+
198
+ 0.2
199
+
200
+ ## Qualified Name
201
+ Term::Source::0.1
202
+
203
+
204
+ ___
205
+
206
+ # Update Term
207
+
208
+ ## In Glossary
209
+
210
+ Glossary::Egeria-Markdown
211
+
212
+ ## Term Name
213
+
214
+ Directive
215
+
216
+ ## Categories
217
+
218
+ Processing Dr.Egeria Markdown
219
+
220
+ ## Summary
221
+
222
+ A directive defines how the command is to be processed.
223
+
224
+ ## Description
225
+
226
+ Directives are one of:
227
+
228
+ * display - just display what we've found
229
+ * validate - check the validity of the requested action
230
+ * process - process the requested action
231
+
232
+
233
+
234
+ ## Version
235
+
236
+ 0.2
237
+
238
+ ## Status
239
+
240
+ DRAFT
241
+
242
+ ## Qualified Name
243
+ Term::Directive::0.1
244
+
245
+
246
+ # Inspecting the Glossary
247
+
248
+ Now that we have created a glossary, categories, and terms we can use some new commands to show us what we have done.
249
+ We will start with the `List Glossaries` command. This command will list all the glossaries that are available to us.
250
+
251
+ ___
252
+
253
+ # List Glossaries
254
+
255
+ ___
256
+
257
+ This will return a markdown table of all known glossaries based on the defaults set for the optional attributes. Here
258
+ is a more detailed specification of the attributes:
259
+
260
+ | Attribute Name | Input Required? | Read Only? | Generated/Default? | Unique? | Notes |
261
+ |----------------|-----------------|------------|----------------------------------|---------|-------------------------------------------|
262
+ | Search String | No | No | default is All glossaries | No | |
263
+ | Output Format | No | No | default is Markdown List (table) | No | options are: LIST, DICT, MD, FORM, REPORT |
264
+
265
+ Lets describe the output formats a bit further:
266
+
267
+ * LIST - This is the default format. It returns a markdown table of the glossaries.
268
+ * DICT - This returns a python dictionary (or JSON representation) of the glossaries.
269
+ * MD - This returns a markdown document of the glossaries.
270
+ * FORM - This returns a Dr.Egeria markdown form designed to be used as a starting point for updating the glossary definitions.
271
+ * REPORT - This returns a markdown document of the glossaries that is designed to be more readable and perhaps suitable to be used in a report.
272
+
273
+ Going further, we can issue similar commands to list categories and terms:
274
+
275
+ The attributes for the `List Categories` command are the same as the `List Glossaries` command:
276
+ Attributes for the `List Terms` command are:
277
+
278
+
279
+ | Attribute Name | Input Required? | Read Only? | Generated/Default? | Unique? | Notes |
280
+ |----------------|-----------------|------------|----------------------------------|---------|-------------------------------------------|
281
+ | Glossary Name | No | No | Default is All glossaries | No | |
282
+ | Search String | No | No | default is All terms | No | |
283
+ | Output Format | No | No | default is Markdown List (table) | No | options are: LIST, DICT, MD, FORM, REPORT |
284
+
285
+
286
+
287
+ ___
288
+
289
+ # List Categories
290
+ ## Output Format
291
+ REPORT
292
+
293
+ ___
294
+ # List Terms
295
+ ## Output Format
296
+ DICT
297
+
298
+