<commit_before>Un modelo es una descripción abstracta que describe aquello que se desea construir. Al definir un modelo uno sigue un conjunto de reglas. Por ejemplo: en un diagrama de secuencia las flechas (mensajes) entre las líneas deben darse de determinadas maneras, no pueden tener cualquier organización porque no tendría sentido. A este conjunto de reglas lo denominamos metamodelo.

El metamodelo nos dice:

-   qué tipo de abstracciones podemos usar en nuestro modelo (por ejemplo: clases)
-   qué características podemos asociarle a esas abstracciones (por ejemplo: métodos, atributos)
-   qué mecanismos tenemos para relacionar esas abstracciones entre sí (herencia, asociación)

Al construir, si utilizamos un lenguaje de alto nivel (o sea, no assembler) ese lenguaje también tendrá la capacidad de especificar abstracciones dentro del lenguaje, como procedimentos, funciones, tipos abstractos de datos, clases, objetos, herencia, polimorfismo, aspectos, mixins, servicios, componentes, etc. Obviamente, las abstracciones que puedo construir en un lenguaje dado, dependen también de un conjunto de reglas; dicho de otra manera el lenguaje tiene su propio metamodelo.<commit_msg>Revision without comments imported from MediaWiki<commit_after>Un modelo es una descripción abstracta que describe aquello que se desea construir. Al definir un **modelo** uno sigue un conjunto de reglas. *Por ejemplo:* en un diagrama de secuencia las flechas (mensajes) entre las líneas deben darse de determinadas maneras, no pueden tener cualquier organización porque no tendría sentido. A este conjunto de reglas lo denominamos **metamodelo**.

El metamodelo nos dice:

-   qué tipo de abstracciones podemos usar en nuestro modelo (por ejemplo: clases)
-   qué características podemos asociarle a esas abstracciones (por ejemplo: métodos, atributos)
-   qué mecanismos tenemos para relacionar esas abstracciones entre sí (herencia, asociación)

Al construir, si utilizamos un lenguaje de alto nivel (o sea, no assembler) ese lenguaje también tendrá la capacidad de especificar abstracciones dentro del lenguaje, como procedimientos, funciones, tipos abstractos de datos, clases, objetos, herencia, polimorfismo, aspectos, mixins, servicios, componentes, etc. Obviamente, las abstracciones que puedo construir en un lenguaje dado, dependen también de un conjunto de reglas; dicho de otra manera el lenguaje tiene su propio metamodelo.
{'fraction_non_alphanumeric': 0.042027194066749075, 'fraction_numerical': 0.0, 'mean_word_length': 5.491978609625669, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2984436', 'n_tokens_mistral': 733, 'n_tokens_neox': 735, 'n_words': 332}