asker-tool 2.1.2 → 2.1.7
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.
- checksums.yaml +4 -4
- data/{LICENSE → LICENSE.txt} +0 -0
- data/README.md +17 -18
- data/bin/asker +1 -0
- data/lib/asker.rb +43 -74
- data/lib/asker/ai/ai.rb +4 -0
- data/lib/asker/ai/code/base_code_ai.rb +104 -0
- data/lib/asker/{code/ai → ai/code}/code_ai_factory.rb +11 -1
- data/lib/asker/{code/ai → ai/code}/javascript_code_ai.rb +2 -5
- data/lib/asker/ai/code/problem_code_ai.rb +176 -0
- data/lib/asker/{code/ai → ai/code}/python_code_ai.rb +2 -5
- data/lib/asker/{code/ai → ai/code}/ruby_code_ai.rb +14 -7
- data/lib/asker/{code/ai → ai/code}/sql_code_ai.rb +2 -5
- data/lib/asker/ai/concept_ai.rb +1 -0
- data/lib/asker/ai/stages/stage_t.rb +76 -76
- data/lib/asker/application.rb +19 -3
- data/lib/asker/checker.rb +152 -53
- data/lib/asker/cli.rb +19 -22
- data/lib/asker/data/code.rb +73 -0
- data/lib/asker/data/column.rb +31 -21
- data/lib/asker/data/concept.rb +42 -45
- data/lib/asker/data/data_field.rb +14 -0
- data/lib/asker/data/row.rb +75 -52
- data/lib/asker/data/table.rb +89 -42
- data/lib/asker/data/world.rb +58 -32
- data/lib/asker/{exporter/code_screen_exporter.rb → displayer/code_displayer.rb} +6 -6
- data/lib/asker/displayer/concept_ai_displayer.rb +132 -0
- data/lib/asker/displayer/concept_displayer.rb +29 -0
- data/lib/asker/displayer/stats_displayer.rb +14 -0
- data/lib/asker/exporter/code_gift_exporter.rb +10 -11
- data/lib/asker/exporter/concept_ai_gift_exporter.rb +23 -11
- data/lib/asker/exporter/concept_ai_yaml_exporter.rb +9 -7
- data/lib/asker/exporter/concept_doc_exporter.rb +9 -15
- data/lib/asker/exporter/output_file_exporter.rb +18 -0
- data/lib/asker/files/config.ini +37 -0
- data/lib/asker/files/example-code.haml +0 -0
- data/lib/asker/files/example-concept.haml +29 -0
- data/lib/asker/files/language/du/templates.yaml +50 -0
- data/lib/asker/files/language/en/connectors.yaml +44 -0
- data/lib/asker/files/language/en/mistakes.yaml +37 -0
- data/lib/asker/files/language/en/templates.yaml +29 -0
- data/lib/asker/files/language/es/connectors.yaml +92 -0
- data/lib/asker/files/language/es/mistakes.yaml +82 -0
- data/lib/asker/files/language/es/templates.yaml +29 -0
- data/lib/asker/files/language/fr/connectors.yaml +92 -0
- data/lib/asker/files/language/fr/mistakes.yaml +82 -0
- data/lib/asker/files/language/fr/templates.yaml +29 -0
- data/lib/asker/files/language/javascript/connectors.yaml +11 -0
- data/lib/asker/files/language/javascript/mistakes.yaml +30 -0
- data/lib/asker/files/language/javascript/templates.yaml +3 -0
- data/lib/asker/files/language/math/connectors.yaml +2 -0
- data/lib/asker/files/language/math/mistakes.yaml +2 -0
- data/lib/asker/files/language/math/templates.yaml +1 -0
- data/lib/asker/files/language/python/connectors.yaml +11 -0
- data/lib/asker/files/language/python/mistakes.yaml +26 -0
- data/lib/asker/files/language/python/templates.yaml +3 -0
- data/lib/asker/files/language/ruby/connectors.yaml +11 -0
- data/lib/asker/files/language/ruby/mistakes.yaml +33 -0
- data/lib/asker/files/language/ruby/templates.yaml +3 -0
- data/lib/asker/files/language/sql/connectors.yaml +6 -0
- data/lib/asker/files/language/sql/mistakes.yaml +11 -0
- data/lib/asker/files/language/sql/templates.yaml +2 -0
- data/lib/asker/formatter/concept_string_formatter.rb +9 -8
- data/lib/asker/formatter/question_gift_formatter.rb +9 -1
- data/lib/asker/lang/lang.rb +18 -12
- data/lib/asker/lang/lang_factory.rb +26 -5
- data/lib/asker/lang/text_actions.rb +87 -69
- data/lib/asker/loader/code_loader.rb +3 -3
- data/lib/asker/loader/content_loader.rb +9 -5
- data/lib/asker/loader/file_loader.rb +2 -11
- data/lib/asker/loader/haml_loader.rb +15 -0
- data/lib/asker/loader/image_url_loader.rb +5 -8
- data/lib/asker/loader/input_loader.rb +23 -7
- data/lib/asker/loader/project_loader.rb +32 -29
- data/lib/asker/logger.rb +3 -4
- data/lib/asker/project.rb +28 -52
- data/lib/asker/skeleton.rb +73 -0
- metadata +62 -73
- data/docs/changelog/v2.1.md +0 -99
- data/docs/commands.md +0 -15
- data/docs/contributions.md +0 -18
- data/docs/history.md +0 -40
- data/docs/idea.md +0 -44
- data/docs/inputs/README.md +0 -39
- data/docs/inputs/code.md +0 -69
- data/docs/inputs/concepts.md +0 -142
- data/docs/inputs/jedi.md +0 -68
- data/docs/inputs/tables.md +0 -112
- data/docs/inputs/templates.md +0 -87
- data/docs/install/README.md +0 -38
- data/docs/install/manual.md +0 -26
- data/docs/install/scripts.md +0 -26
- data/docs/revise/asker-file.md +0 -41
- data/docs/revise/buenas-practicas/01-convocatoria.md +0 -30
- data/docs/revise/buenas-practicas/02-formulario.md +0 -35
- data/docs/revise/buenas-practicas/03-descripcion.md +0 -63
- data/docs/revise/buenas-practicas/04-resultados.md +0 -17
- data/docs/revise/buenas-practicas/05-reproducir.md +0 -10
- data/docs/revise/ejemplos/01/README.md +0 -27
- data/docs/revise/ejemplos/02/README.md +0 -31
- data/docs/revise/ejemplos/03/README.md +0 -31
- data/docs/revise/ejemplos/04/README.md +0 -37
- data/docs/revise/ejemplos/05/README.md +0 -25
- data/docs/revise/ejemplos/06/README.md +0 -43
- data/docs/revise/ejemplos/README.md +0 -11
- data/docs/revise/projects.md +0 -74
- data/lib/asker/code/ai/base_code_ai.rb +0 -48
- data/lib/asker/code/code.rb +0 -53
- data/lib/asker/exporter/concept_ai_screen_exporter.rb +0 -115
- data/lib/asker/exporter/concept_screen_exporter.rb +0 -25
- data/lib/asker/exporter/main.rb +0 -9
data/docs/commands.md
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
[<<back](../README.md)
|
|
3
|
-
|
|
4
|
-
# Commands
|
|
5
|
-
|
|
6
|
-
By now, ASKER run as CLI command.
|
|
7
|
-
|
|
8
|
-
| Command | Description |
|
|
9
|
-
| ----------------------- | ------------------------------- |
|
|
10
|
-
| asker | Show available functions |
|
|
11
|
-
| asker version | Show current version |
|
|
12
|
-
| asker PATH/TO/INPUTFILE | Create questions for input file |
|
|
13
|
-
| asker file PATH/TO/INPUTFILE | File keyword is optional |
|
|
14
|
-
| asker check PATH/TO/INPUTFILE | Check HAML file syntax |
|
|
15
|
-
| asker init | Create default config.ini file |
|
data/docs/contributions.md
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
[<< back](../README.md)
|
|
3
|
-
|
|
4
|
-
# Contributions
|
|
5
|
-
|
|
6
|
-
If you want to contribute:
|
|
7
|
-
* Talk about this tool with your colleagues.
|
|
8
|
-
* Use this tool.
|
|
9
|
-
* Report bugs.
|
|
10
|
-
* Report us, your ideas for new features.
|
|
11
|
-
* Share with us your own input files.
|
|
12
|
-
* And if you love `ruby`, you can develop with us or work on the issues.
|
|
13
|
-
|
|
14
|
-
---
|
|
15
|
-
# Contact
|
|
16
|
-
|
|
17
|
-
* **Email**: `teuton.software@protonmail.com`
|
|
18
|
-
* **Twitter**: `@SoftwareTeuton`
|
data/docs/history.md
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
[<< back](../README.md)
|
|
3
|
-
|
|
4
|
-
# History
|
|
5
|
-
|
|
6
|
-
> Some time ago, this project was called "Darts of teacher". We renamed it because "darts" was used. Now, it's called ASKER.
|
|
7
|
-
|
|
8
|
-
## The problem
|
|
9
|
-
|
|
10
|
-
Working as a teacher, one of the most boring taks is check the same exercises
|
|
11
|
-
again and again, for every student, and every year.
|
|
12
|
-
|
|
13
|
-
The tests questions allow us to make activities that are automaticaly checked/resolved by software tools, as for example, Moodle cuestionairs.
|
|
14
|
-
In this case, the teacher will have enough time to waste others tasks, as:
|
|
15
|
-
* Analise results with detail.
|
|
16
|
-
* Read information about others materials.
|
|
17
|
-
* Test new aplications.
|
|
18
|
-
* Develop new tools.
|
|
19
|
-
* Etc.
|
|
20
|
-
|
|
21
|
-
In resume, applying more new knowledge to improve his work,
|
|
22
|
-
trying new ways of doing his job better, finding or redefining activities or lessons contents. Just finding a better way of teaching. And an easier way of learning for the students.
|
|
23
|
-
|
|
24
|
-
## Need a new tool
|
|
25
|
-
|
|
26
|
-
I decide (about 2013) start writing this tool to help me
|
|
27
|
-
with the process of making test questions from input definition files.
|
|
28
|
-
|
|
29
|
-
With this tool, I only waste time making this input file.
|
|
30
|
-
As a teacher I have this knowledge into my mind, so it will be easy.
|
|
31
|
-
It's the resume, definitions or conceptual entities of the unit
|
|
32
|
-
I'm teaching.
|
|
33
|
-
|
|
34
|
-
I've been using this tools several years/courses, teaching computer
|
|
35
|
-
science. I have a lot of work to improve it and new features to add.
|
|
36
|
-
It's usefull (for me at least), and hope It'll be for you too.
|
|
37
|
-
|
|
38
|
-
;-)
|
|
39
|
-
|
|
40
|
-
David Vargas
|
data/docs/idea.md
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
[<< back](../README.md)
|
|
3
|
-
|
|
4
|
-
# Basics
|
|
5
|
-
|
|
6
|
-
> **Disclaimber**
|
|
7
|
-
>
|
|
8
|
-
> I work as a teacher, and I try to do the best I know. But I'm really a programmer. I studied Computer Science at *ULPGC*.
|
|
9
|
-
>
|
|
10
|
-
> The 90% of what I've learned, I must thank to *Open Source* community.
|
|
11
|
-
The other 10%, It's luck and time wasted working.
|
|
12
|
-
|
|
13
|
-
## Open vs closed problems
|
|
14
|
-
|
|
15
|
-
The big problem with test questions are that only are usefull to evaluate
|
|
16
|
-
measurable features. So it is useless when we try measure abstract
|
|
17
|
-
features or measure open problems. But I think, we can do it with another approach.
|
|
18
|
-
|
|
19
|
-
I mean, if we get an open and abstract problem, their resolution will consist on several steps or measurable milestones. So we can transform an open problem, into a lot of closed mini-problems. And we have to focus on the measurable aspects.
|
|
20
|
-
|
|
21
|
-
Besides, if I *"bomb"* the student with a huge amount of diferent test questions about one concept, probably I could be near of knowing and measuring, the student asimilation of that kownledge.
|
|
22
|
-
|
|
23
|
-
## Making Questions
|
|
24
|
-
|
|
25
|
-
The task of creating test questions to solve the previous problem, becames another different problem to be solved. When I had to make manually this test questions, it took me a lot of time. And I need a lot.
|
|
26
|
-
|
|
27
|
-
And usually when I was making the question number 42, I realise that I forgot the content of the 41 previous. I'm loosing time and it's slow.
|
|
28
|
-
|
|
29
|
-
## Work once
|
|
30
|
-
|
|
31
|
-
Finally, I decide to write this tool that help me with the process of
|
|
32
|
-
making test questions from input definition files.
|
|
33
|
-
|
|
34
|
-
So I only waste time making an input file. But as a teacher I have this
|
|
35
|
-
into my mind and it must be a simple job. Because the inpu file it's just a resumed concepts list about the unit I'm teaching.
|
|
36
|
-
|
|
37
|
-
I've been using this tools several years/courses, teaching computer
|
|
38
|
-
science. I have a lot of functions to be improved and features to be added.
|
|
39
|
-
But for now, It's usefull (for me at least), and hope it will be for you too.
|
|
40
|
-
;-)
|
|
41
|
-
|
|
42
|
-
_Thanks!_
|
|
43
|
-
|
|
44
|
-
David Vargas
|
data/docs/inputs/README.md
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
[<< back](../../README.md)
|
|
3
|
-
|
|
4
|
-
# Inputs
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Text plain editor
|
|
9
|
-
|
|
10
|
-
How to build our asker input files?
|
|
11
|
-
|
|
12
|
-
Open a plain text editor and start writting definitions.
|
|
13
|
-
* [Learn about concepts](concepts.md)
|
|
14
|
-
* [Learn about tables](tables.md)
|
|
15
|
-
* [Learn about templates](templates.md)
|
|
16
|
-
* [Learn about code](code.md)
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## Web editor (On development)
|
|
21
|
-
|
|
22
|
-
Asker has a web editor to help building our asker input files.
|
|
23
|
-
By now only read, do not write. Sorry! Still is on development.
|
|
24
|
-
|
|
25
|
-
Looks like this:
|
|
26
|
-
|
|
27
|
-

|
|
28
|
-
|
|
29
|
-
To launch web editor:
|
|
30
|
-
1. `asker editor`
|
|
31
|
-
1. Open web browser and goto URL `localhost:4567`.
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
## More examples
|
|
36
|
-
|
|
37
|
-
Download our git repository with a lot of examples:
|
|
38
|
-
* `asker donwnload` or
|
|
39
|
-
* `git clone https://github.com/dvarrui/asker-inputs.git`
|
data/docs/inputs/code.md
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
[<< back](README.md)
|
|
3
|
-
|
|
4
|
-
# Learn code
|
|
5
|
-
|
|
6
|
-
Now, we are going to learn experimental keywords:
|
|
7
|
-
* code
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Concept limits
|
|
12
|
-
|
|
13
|
-
We have learn about using: map, concept, names, tags, def, table and template keywords. All them are usefull to define concepts.
|
|
14
|
-
|
|
15
|
-
Commonly we use natural lenguages (en, es, fr, de, etc) to talk about them and Asker DSL is a simpler and structured language version. All languages are similar (verbs, subjects, adjective, etc.), but have their own rules.
|
|
16
|
-
A poem, for example is writting using those rules.
|
|
17
|
-
|
|
18
|
-
Exists others kind of human creations, that use other definition languages.
|
|
19
|
-
For example, programming languages, file configurations, drawing language, math language, etc,
|
|
20
|
-
|
|
21
|
-
So we had to create new DSL keyword called `code`.
|
|
22
|
-
|
|
23
|
-
Let's see.
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
# Code
|
|
27
|
-
|
|
28
|
-
## Example
|
|
29
|
-
|
|
30
|
-
Example, using `code`keyword to define a python program from `files/string.py`file:
|
|
31
|
-
|
|
32
|
-
```
|
|
33
|
-
%map{ :version => '1', :lang => 'en', :context=>'python, programming, language' }
|
|
34
|
-
|
|
35
|
-
%code
|
|
36
|
-
%type python
|
|
37
|
-
%path files/string.py
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
| Param | Description |
|
|
41
|
-
| ----- | ------------------------- |
|
|
42
|
-
| code | Define a new code concept |
|
|
43
|
-
| type | Content type |
|
|
44
|
-
| path | Path to content file |
|
|
45
|
-
|
|
46
|
-
> Experimental type values: python, ruby, javascript, sql
|
|
47
|
-
|
|
48
|
-
## Full map
|
|
49
|
-
|
|
50
|
-
Example, using `code`keyword to define several python programs from `files/` folder:
|
|
51
|
-
|
|
52
|
-
```
|
|
53
|
-
%map{ :version => '1', :lang => 'en', :context=>'python, programming, language' }
|
|
54
|
-
|
|
55
|
-
%code
|
|
56
|
-
%type python
|
|
57
|
-
%path files/string.py
|
|
58
|
-
|
|
59
|
-
%code
|
|
60
|
-
%type python
|
|
61
|
-
%path files/array.py
|
|
62
|
-
|
|
63
|
-
%code
|
|
64
|
-
%type python
|
|
65
|
-
%path files/iterator.py
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
Example:
|
|
69
|
-
* [python](../examples/code)
|
data/docs/inputs/concepts.md
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
[<< back](README.md)
|
|
3
|
-
|
|
4
|
-
# Learn basics
|
|
5
|
-
|
|
6
|
-
To know how to build our asker input files, we need to learn
|
|
7
|
-
main keywords:
|
|
8
|
-
* map
|
|
9
|
-
* concept
|
|
10
|
-
* names
|
|
11
|
-
* tags
|
|
12
|
-
* def
|
|
13
|
-
|
|
14
|
-
Let's start!.
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
# Text plain editor
|
|
19
|
-
|
|
20
|
-
* Create a text file, called for example: `demo/furniture.haml`.
|
|
21
|
-
* **map**: Once, at first line, we write keyword `map`. Example:
|
|
22
|
-
|
|
23
|
-
```ruby
|
|
24
|
-
%map{ :lang => 'en', :context => 'furniture, home', :version => '1'}
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
| Attribute | Description |
|
|
28
|
-
| --------- | ---------------------------------------------- |
|
|
29
|
-
| lang | Output texts will be created in English. Valid values: en, es |
|
|
30
|
-
| context | Comma separated labels that define map content |
|
|
31
|
-
| version | Input file format version. Valid value: 1 |
|
|
32
|
-
|
|
33
|
-
This input file will contain concepts about furniture context.
|
|
34
|
-
Use diferents input files to define diferents contexts.
|
|
35
|
-
|
|
36
|
-
> Use separated contexts is good idea. Sometimes, diferents concept from diferents contexts has the same `names` value. For example:
|
|
37
|
-
> * free as free of charge, costless.
|
|
38
|
-
> * free as in freedom.
|
|
39
|
-
|
|
40
|
-
* **concept, names, tags**: So we define our first concept:
|
|
41
|
-
|
|
42
|
-
```
|
|
43
|
-
%concept
|
|
44
|
-
%names chair
|
|
45
|
-
%tags single, seat, leg, backrest
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
| Param | Description |
|
|
49
|
-
| ----- | ------------------------------- |
|
|
50
|
-
| names | Comma separated concept's names |
|
|
51
|
-
| tags | Comma separated tags that help to identify this concept |
|
|
52
|
-
|
|
53
|
-
* **def**: Use def keyword to add concept meaning. The `def` content must uniquely identifies our concept. You can use `def` more than once.
|
|
54
|
-
|
|
55
|
-
```
|
|
56
|
-
%concept
|
|
57
|
-
%names chair
|
|
58
|
-
%tags single, seat, leg, backrest
|
|
59
|
-
%def Single seat with legs and backrest
|
|
60
|
-
%def Furniture that is placed around the table to sit
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
At this time, we may generate questions with:
|
|
64
|
-
|
|
65
|
-
```bash
|
|
66
|
-
asker demo/furniture.haml
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
---
|
|
70
|
-
|
|
71
|
-
# Formats
|
|
72
|
-
|
|
73
|
-
HAML is a special format. It's necesary write exactly:
|
|
74
|
-
* 0 spaces before map.
|
|
75
|
-
* 2 spaces before concept.
|
|
76
|
-
* 4 spaces before names, tags and def.
|
|
77
|
-
|
|
78
|
-
It's posible write the same using XML format instead. Take a look:
|
|
79
|
-
|
|
80
|
-
```xml
|
|
81
|
-
<map lang='en' context='furniture, home' version='1'>
|
|
82
|
-
<concept>
|
|
83
|
-
<names>chair</names>
|
|
84
|
-
<tags>single, seat, leg, backrest</tags>
|
|
85
|
-
<def>Single seat with legs and backrest</def>
|
|
86
|
-
<def>Furniture that is placed around the table to sit</def>
|
|
87
|
-
</concept>
|
|
88
|
-
</map>
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
Notice that `demo/furniture.haml` is HAML file and `demo/furniture.xml` a XML file. Both are valid.
|
|
92
|
-
|
|
93
|
-
> HAML format files are the same as XML format files.
|
|
94
|
-
Internaly HAML files are translated automaticaly to an XML equivalent.
|
|
95
|
-
>
|
|
96
|
-
> Why write into HAML instead of XML? HAML It's easier (for me).
|
|
97
|
-
You don't have to close every tag, only be carefuly with indentation.
|
|
98
|
-
>
|
|
99
|
-
> If you prefer, you could write your input files using XML.
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
# Adding images
|
|
104
|
-
|
|
105
|
-
Example:
|
|
106
|
-

|
|
107
|
-
|
|
108
|
-
**def** can be used with image URL. So we have to find an image that uniquely identifies our concept and write this:
|
|
109
|
-
|
|
110
|
-
```
|
|
111
|
-
%def{:type => 'image_url'}https://www.portobellostreet.es/imagenes_muebles/Muebles-Silla-colonial-Fusta-Bora-Bora.jpg
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
| Attribute | Description |
|
|
115
|
-
| --------- | ------------ |
|
|
116
|
-
| type | Content type |
|
|
117
|
-
|
|
118
|
-
---
|
|
119
|
-
|
|
120
|
-
# Increase questions number
|
|
121
|
-
|
|
122
|
-
Adding more concepts will increase questions number generated by ASKER:
|
|
123
|
-
|
|
124
|
-
```
|
|
125
|
-
%concept
|
|
126
|
-
%names couch
|
|
127
|
-
%tags furniture, seat, two, threee, people, bench, armrest
|
|
128
|
-
|
|
129
|
-
%concept
|
|
130
|
-
%names table
|
|
131
|
-
%tags furniture, flat, top, leg, surface, work, eat
|
|
132
|
-
|
|
133
|
-
%concept
|
|
134
|
-
%names bed
|
|
135
|
-
%tags furniture, place, sleep, relax
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
Examples:
|
|
139
|
-
* [furniture.haml](../examples/home/furniture.haml)
|
|
140
|
-
* [furniture.xml](../examples/home/xml/furniture.xml)
|
|
141
|
-
|
|
142
|
-
[>> Learn about tables](tables.md)
|
data/docs/inputs/jedi.md
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# Jedi
|
|
3
|
-
|
|
4
|
-
Inputs
|
|
5
|
-
======
|
|
6
|
-
|
|
7
|
-
Into *maps* directory we save our own concept map files. We could use subdirectories to
|
|
8
|
-
better organization. As example we have the file `maps/demo/starwars/jedi.haml`, that
|
|
9
|
-
contains one concept map about Jedi characters of StarWars film into HAML format.
|
|
10
|
-
|
|
11
|
-
Let's take a look (Spanish example, I know. Soon I'll write the english version):
|
|
12
|
-
```
|
|
13
|
-
%map{ :lang => 'en', :context => 'character, starwars', :version => '1'}
|
|
14
|
-
|
|
15
|
-
%concept
|
|
16
|
-
%names obiwan
|
|
17
|
-
%tags jedi, teacher, annakin, skywalker, pupil, quigon-jinn
|
|
18
|
-
%def Jedi, teacher of Annakin Skywalker
|
|
19
|
-
%def Jedi, pupil of Quigon-Jinn
|
|
20
|
-
%table{ :fields => 'attribute, value' }
|
|
21
|
-
%title Associate every attribute with their value
|
|
22
|
-
%row
|
|
23
|
-
%col race
|
|
24
|
-
%col human
|
|
25
|
-
%row
|
|
26
|
-
%col laser sabel color
|
|
27
|
-
%col green
|
|
28
|
-
%row
|
|
29
|
-
%col hair color
|
|
30
|
-
%col red
|
|
31
|
-
|
|
32
|
-
%concept
|
|
33
|
-
%names yoda
|
|
34
|
-
%tags teacher, jedi
|
|
35
|
-
%def Jedi, teacher of all jedis
|
|
36
|
-
%def The Main Teacher of Jedi and one of the most important members of the Main Jedi Council, in the last days of Star Republic.
|
|
37
|
-
%def He has exceptional combat abilities with light sable, using acrobatics tecnics from Ataru.
|
|
38
|
-
%def He was master of all light sable combat styles and was considered during years as a Sword Master.
|
|
39
|
-
%table{ :fields => 'attribute, value' }
|
|
40
|
-
%row
|
|
41
|
-
%col color laser sabel
|
|
42
|
-
%col green
|
|
43
|
-
%row
|
|
44
|
-
%col hair color
|
|
45
|
-
%col white
|
|
46
|
-
%row
|
|
47
|
-
%col skin color
|
|
48
|
-
%col green
|
|
49
|
-
%row
|
|
50
|
-
%col high
|
|
51
|
-
%col 65 centimetres
|
|
52
|
-
...
|
|
53
|
-
```
|
|
54
|
-
As we see, we defined 2 concepts about Jedi characters. This are `obiwan` and `yoda`.
|
|
55
|
-
And we use special sintax (tags) to define it.
|
|
56
|
-
|
|
57
|
-
At now we have a this list of tags to define our own sintax for build conceptual maps:
|
|
58
|
-
* **context**: List of comma separated words, that identify the context where this concept "lives" or "exists".
|
|
59
|
-
* **names**: List of one or more names that identify the concept. At least one is requiered, of course!.
|
|
60
|
-
* **tags**: List of comma separated words, that briefly describe the concept. I mean, a short list of words
|
|
61
|
-
that came in mind when we think in it, and are useful for their identification.
|
|
62
|
-
* **def**: We use this tags as many times we need. In it, we write using natural language descriptions
|
|
63
|
-
asssociated to the concept. This are definitions/descriptions that are uniques
|
|
64
|
-
for this concept, but don't write the name of the concept into the text.
|
|
65
|
-
* **table**: Other way to build more sofisticated definitions/schemas is using "tables". It's similar
|
|
66
|
-
to HTML tag. I mean, with this "table", we build tables of knowledge into the concept. We use "row",
|
|
67
|
-
and "col", to defines table-rows and row-cols, of course. We could see an
|
|
68
|
-
example into `input/en/starwars/jedi.haml`.
|
data/docs/inputs/tables.md
DELETED
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
[<< back](README.md)
|
|
3
|
-
|
|
4
|
-
# Learn tables
|
|
5
|
-
|
|
6
|
-
Now, we are going to learn keywords:
|
|
7
|
-
* table
|
|
8
|
-
* row
|
|
9
|
-
* col
|
|
10
|
-
|
|
11
|
-
Let's go!.
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
# Def limits
|
|
16
|
-
|
|
17
|
-
We have learn that:
|
|
18
|
-
* **map** serves to identify an input file.
|
|
19
|
-
* **concept**, **names** and **tags** serves to identify a concept.
|
|
20
|
-
* **def** serves to add meaning to a concept.
|
|
21
|
-
|
|
22
|
-
But, it's not enough. **def** only contains meaning that could only be associated to one unique concept. For example:
|
|
23
|
-
```
|
|
24
|
-
%concept
|
|
25
|
-
%names AC/DC, ACDC
|
|
26
|
-
%tags rock, band, australia
|
|
27
|
-
%def Australian rock band formed by Scottish-born brothers Malcolm and Angus Young
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
**def** is good but we need other keyword to add meaning that isn't uniquely associated to one concept. That is **table** keyword.
|
|
31
|
-
|
|
32
|
-
---
|
|
33
|
-
# Tables
|
|
34
|
-
|
|
35
|
-
## Table with 1 field
|
|
36
|
-
|
|
37
|
-
Example, adding meaning using 1 field table. Field called `members`:
|
|
38
|
-
|
|
39
|
-
```
|
|
40
|
-
%concept
|
|
41
|
-
%names AC/DC, ACDC
|
|
42
|
-
%tags single, seat, leg, backrest
|
|
43
|
-
%tags rock, band, australia
|
|
44
|
-
%table{ :fields => 'members'}
|
|
45
|
-
%row Bon Scott
|
|
46
|
-
%row Angus Young
|
|
47
|
-
%row Malcolm Young
|
|
48
|
-
%row Phil Rudd
|
|
49
|
-
%row Cliff Williams
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
| Param | Description |
|
|
53
|
-
| ------ | ----------- |
|
|
54
|
-
| table | Group rows |
|
|
55
|
-
| fields | Comma separated values with field name |
|
|
56
|
-
| row | Field value |
|
|
57
|
-
|
|
58
|
-
## Table with 2 fields
|
|
59
|
-
|
|
60
|
-
Example, adding meaning using 2 fields table. Fields called `attribute` and `value`:
|
|
61
|
-
|
|
62
|
-
```
|
|
63
|
-
%concept
|
|
64
|
-
%names AC/DC, ACDC
|
|
65
|
-
%tags single, seat, leg, backrest
|
|
66
|
-
%tags rock, band, australia
|
|
67
|
-
%table{ :fields => 'attribute, value'}
|
|
68
|
-
%row
|
|
69
|
-
%col Genres
|
|
70
|
-
%col Hard rock blues rock rock and roll
|
|
71
|
-
%row
|
|
72
|
-
%col Years active
|
|
73
|
-
%col 1973–present
|
|
74
|
-
%row
|
|
75
|
-
%col Origin
|
|
76
|
-
%col Sydney
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
| Param | Description |
|
|
80
|
-
| ------ | ------------------ |
|
|
81
|
-
| table | Group rows |
|
|
82
|
-
| fields | Comma separated values with field names |
|
|
83
|
-
| row | Group cols |
|
|
84
|
-
| col | Field column value |
|
|
85
|
-
|
|
86
|
-
## Table with Sequence
|
|
87
|
-
|
|
88
|
-
Sometimes we have a 1 field table where rows are sorted or form a sequence. In that cases we also could take advantage defining a `sequence`, like:
|
|
89
|
-
|
|
90
|
-
```
|
|
91
|
-
%concept
|
|
92
|
-
%names AC/DC, ACDC
|
|
93
|
-
%tags single, seat, leg, backrest
|
|
94
|
-
%tags rock, band, australia
|
|
95
|
-
%table{ :fields => 'Albums', :sequence => 'Albums sorted by date'}
|
|
96
|
-
%row Albums High Voltage
|
|
97
|
-
%row Powerage
|
|
98
|
-
%row Highway to Hell
|
|
99
|
-
%row Back in Black
|
|
100
|
-
%row Ballbreaker
|
|
101
|
-
%row Rock or Bust
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
| Param | Description |
|
|
105
|
-
| -------- | ------------------ |
|
|
106
|
-
| table | Group rows |
|
|
107
|
-
| fields | Field name |
|
|
108
|
-
| sequence | Label form ordered values |
|
|
109
|
-
| row | Field value |
|
|
110
|
-
|
|
111
|
-
Example:
|
|
112
|
-
* [acdc.haml](../examples/bands/acdc.haml)
|