unify header style

This commit is contained in:
Boris Verkhovskiy 2024-04-26 02:13:48 -07:00
parent 1924d58159
commit 5fb4c54268
5 changed files with 194 additions and 239 deletions

View File

@ -1,4 +1,4 @@
name: Node.js CI
name: CI
on:
push:
@ -15,4 +15,4 @@ jobs:
with:
ruby-version: '3.2'
- run: gem install mdl
- run: mdl . --ignore-front-matter -r MD011,MD023,MD027,MD028,MD037,MD038,MD039,MD047
- run: mdl . --ignore-front-matter -r MD003,MD011,MD023,MD027,MD028,MD035,MD037,MD038,MD039,MD047

View File

@ -1116,8 +1116,7 @@ proc main() {
} // end main()
```
Who is this tutorial for?
-------------------------
## Who is this tutorial for?
This tutorial is for people who want to learn the ropes of chapel without
having to hear about what fiber mixture the ropes are, or how they were
@ -1132,28 +1131,27 @@ to see if more topics have been added or more tutorials created.
### What this tutorial is lacking:
* Exposition of the [standard modules](https://chapel-lang.org/docs/latest/modules/standard.html)
* Multiple Locales (distributed memory system)
* Records
* Parallel iterators
* Exposition of the [standard modules](https://chapel-lang.org/docs/latest/modules/standard.html)
* Multiple Locales (distributed memory system)
* Records
* Parallel iterators
Your input, questions, and discoveries are important to the developers!
-----------------------------------------------------------------------
## Your input, questions, and discoveries are important to the developers!
The Chapel language is still in active development, so there are
occasional hiccups with performance and language features. The more information
you give the Chapel development team about issues you encounter or features you
would like to see, the better the language becomes.
There are several ways to interact with the developers:
+ [Gitter chat](https://gitter.im/chapel-lang/chapel)
+ [sourceforge email lists](https://sourceforge.net/p/chapel/mailman)
* [Gitter chat](https://gitter.im/chapel-lang/chapel)
* [sourceforge email lists](https://sourceforge.net/p/chapel/mailman)
If you're really interested in the development of the compiler or contributing
to the project, [check out the master GitHub repository](https://github.com/chapel-lang/chapel).
It is under the [Apache 2.0 License](http://www.apache.org/licenses/LICENSE-2.0).
Installing the Compiler
-----------------------
## Installing the Compiler
[The Official Chapel documentation details how to download and compile the Chapel compiler.](https://chapel-lang.org/docs/usingchapel/QUICKSTART.html)
@ -1161,23 +1159,22 @@ Chapel can be built and installed on your average 'nix machine (and cygwin).
[Download the latest release version](https://github.com/chapel-lang/chapel/releases/)
and it's as easy as
1. `tar -xvf chapel-<VERSION>.tar.gz`
2. `cd chapel-<VERSION>`
3. `source util/setchplenv.bash # or .sh or .csh or .fish`
4. `make`
5. `make check # optional`
1. `tar -xvf chapel-<VERSION>.tar.gz`
2. `cd chapel-<VERSION>`
3. `source util/setchplenv.bash # or .sh or .csh or .fish`
4. `make`
5. `make check # optional`
You will need to `source util/setchplenv.EXT` from within the Chapel directory
(`$CHPL_HOME`) every time your terminal starts so it's suggested that you drop
that command in a script that will get executed on startup (like .bashrc).
Chapel is easily installed with Brew for macOS
Chapel is easily installed on macOS with Homebrew
1. `brew update`
2. `brew install chapel`
1. `brew update`
2. `brew install chapel`
Compiling Code
--------------
## Compiling Code
Builds like other compilers:
@ -1185,10 +1182,10 @@ Builds like other compilers:
Notable arguments:
* `--fast`: enables a number of optimizations and disables array bounds
* `--fast`: enables a number of optimizations and disables array bounds
checks. Should only enable when application is stable.
* `--set <Symbol Name>=<Value>`: set config param `<Symbol Name>` to `<Value>`
* `--set <Symbol Name>=<Value>`: set config param `<Symbol Name>` to `<Value>`
at compile-time.
* `--main-module <Module Name>`: use the main() procedure found in the module
* `--main-module <Module Name>`: use the main() procedure found in the module
`<Module Name>` as the executable's main.
* `--module-dir <Directory>`: includes `<Directory>` in the module search path.
* `--module-dir <Directory>`: includes `<Directory>` in the module search path.

View File

@ -14,7 +14,6 @@ En resumen, Chapel es un lenguaje de programación paralela, código abierto, de
desarrolladp en Cray Inc. y está diseñado para ejecutarse en PC multi-nucleos,
así como en supercomputadoras multi-kilocore.
Puede encontrar más información y asistencia al final de este documento.
```chapel
@ -1133,8 +1132,7 @@ proc main() {
} // end main()
```
¿Para quién es este tutorial?
-------------------------
## ¿Para quién es este tutorial?
Este tutorial es para personas que desean aprender las cuerdas de chapel sin tener
que escuchar sobre qué mezcla de fibras son las cuerdas, o cómo fueron trenzadas,
@ -1148,13 +1146,12 @@ para ver si se han agregado más temas o se han creado más tutoriales.
### Lo que le falta a este tutorial:
* Exposición de los [módulos estándar](https://chapel-lang.org/docs/latest/modules/standard.html)
* Múltiples configuraciones regionales (sistema de memoria distribuida)
* Registros
* Iteradores paralelos
* Exposición de los [módulos estándar](https://chapel-lang.org/docs/latest/modules/standard.html)
* Múltiples configuraciones regionales (sistema de memoria distribuida)
* Registros
* Iteradores paralelos
¡Sus comentarios, preguntas y descubrimientos son importantes para los desarrolladores!
-----------------------------------------------------------------------
## ¡Sus comentarios, preguntas y descubrimientos son importantes para los desarrolladores!
El lenguaje Chapel todavía está en desarrollo activo, por lo que
ocasionalmente hay problemas con el rendimiento y
@ -1164,17 +1161,16 @@ Cuanta más información brinde al equipo de desarrollo de Chapel
sobre los problemas que encuentre o las características que le gustaría ver,
mejor será el lenguaje.
Hay varias formas de interactuar con los desarrolladores:
+ [Chat de Gitter](https://gitter.im/chapel-lang/chapel)
+ [lista de emails de Sourceforge](https://sourceforge.net/p/chapel/mailman)
* [Chat de Gitter](https://gitter.im/chapel-lang/chapel)
* [lista de emails de Sourceforge](https://sourceforge.net/p/chapel/mailman)
Si está realmente interesado en el desarrollo del compilador o en contribuir al proyecto,
[consulte el repositorio maestro de GitHub](https://github.com/chapel-lang/chapel).
Está bajo el [La licencia Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0).
Instalar el compilador
-----------------------
## Instalar el compilador
[La documentación oficial de Chapel detalla cómo descargar y compilar el compilador de Chapel.](https://chapel-lang.org/docs/usingchapel/QUICKSTART.html)
@ -1182,11 +1178,11 @@ Chapel se puede construir e instalar en su máquina promedio 'nix (y cygwin).
[Descargue la última versión de lanzamiento](https://github.com/chapel-lang/chapel/releases/)
y es tan fácil como
1. `tar -xvf chapel-<VERSION>.tar.gz`
2. `cd chapel-<VERSION>`
3. `source util/setchplenv.bash # or .sh or .csh or .fish`
4. `make`
5. `make check # optional`
1. `tar -xvf chapel-<VERSION>.tar.gz`
2. `cd chapel-<VERSION>`
3. `source util/setchplenv.bash # or .sh or .csh or .fish`
4. `make`
5. `make check # optional`
You will need to `source util/setchplenv.EXT` from within the Chapel directory
(`$CHPL_HOME`) every time your terminal starts so it's suggested that you drop
@ -1198,11 +1194,10 @@ en un script que se ejecutará al inicio (como .bashrc).
Chapel se instala fácilmente con Brew para OS X
1. `brew update`
2. `brew install chapel`
1. `brew update`
2. `brew install chapel`
Compilando Código
--------------
## Compilando Código
Construye como otros compiladores:
@ -1210,10 +1205,10 @@ Construye como otros compiladores:
Argumentos notables:
* `--fast`: habilita varias optimizaciones y deshabilita las comprobaciones
* `--fast`: habilita varias optimizaciones y deshabilita las comprobaciones
de los límites de la matriz Solo debe habilitarse cuando la aplicación es estable.
* `--set <Nombre del Symbolo>=<Valor>`: establece el param de configuracion
* `--set <Nombre del Symbolo>=<Valor>`: establece el param de configuracion
`<Nombre del Symbolo>` a `<Valor>`en tiempo de compilación.
* `--main-module <Nombre del módulo>`: use el procedimiento main() que se encuentra en el módulo
    `<Nombre del módulo>` como principal del ejecutable.
* `--module-dir <Directorio>`: incluye `<Directorio>` en la ruta de búsqueda del módulo.
* `--main-module <Nombre del módulo>`: use el procedimiento main() que se encuentra en el módulo
`<Nombre del módulo>` como principal del ejecutable.
* `--module-dir <Directorio>`: incluye `<Directorio>` en la ruta de búsqueda del módulo.

View File

@ -6,14 +6,11 @@ contributors:
lang: pt-br
---
O Cypher é a linguagem de consulta do Neo4j para manipular gráficos facilmente. Ela reutiliza a sintaxe do SQL e a mistura com o tipo de ascii-art para representar gráficos. Este tutorial pressupõe que você já conheça conceitos de gráficos como nós e relacionamentos.
[Leia mais aqui.](https://neo4j.com/developer/cypher-query-language/)
Nós
---
## Nós
**Representa um registro em um gráfico.**
@ -34,21 +31,19 @@ Um nó pode ter algumas *propriedades*, aqui **name** e **age**. Começa com min
Os tipos permitidos nas propriedades:
- Numeric
- Boolean
- String
- Lista de tipos primitivos anteriores
- Numeric
- Boolean
- String
- Lista de tipos primitivos anteriores
*Aviso: não há propriedade datetime no Cypher! Você pode usar String com um padrão específico ou um Numeric a partir de uma data específica.*
`p.name`
Você pode acessar uma propriedade com o estilo de ponto.
## Relacionamentos (ou Arestas)
Relacionamentos (ou Arestas)
---
**Conecta dois nós**
**Conecta dois nós.**
`[:KNOWS]`
É um *relacionamento* com o *label* **KNOWS**. É um *label* como um rótulo do nó. Começa com maiúsculas e usa UPPER_SNAKE_CASE.
@ -62,9 +57,7 @@ O mesmo *relacionamento*, com *propriedades* (como *nó*), aqui **since**.
`[k:KNOWS*..4]`
É uma informação estrutural para usar em um *path* (visto posteriormente). Aqui, **\*..4** diz, “Corresponda o padrão, com a relação **k** que é repetida de 1 a 4 vezes.
Paths
---
## Paths
**A maneira de misturar nós e relacionamentos.**
@ -80,9 +73,9 @@ Você pode encadear vários relacionamentos. Este path descreve o amigo de um am
`(a:Person)-[:MANAGES]->(b:Person)-[:MANAGES]->(c:Person)`
Uma encadeamento também pode ser direcionada. Este path descreve que **a** é o chefe de **b** e o grande chefe de **c**.
Padrões frequentemente usados (do Neo4j doc) :
Padrões frequentemente usados (do Neo4j doc):
```
```cypher
// Amigo de um amigo
(user)-[:KNOWS]-(friend)-[:KNOWS]-(foaf)
@ -96,13 +89,11 @@ path = shortestPath( (user)-[:KNOWS*..5]-(other) )
(root)<-[:PARENT*]-(leaf:Category)-[:ITEM]->(data:Product)
```
Crie consultas
---
## Crie consultas
Crie um novo nó
```
```cypher
CREATE (a:Person {name:"Théo Gauchoux"})
RETURN a
```
@ -111,52 +102,51 @@ RETURN a
Crie um novo relacionamento (com 2 novos nós)
```
```cypher
CREATE (a:Person)-[k:KNOWS]-(b:Person)
RETURN a,k,b
```
Consultas que casam
---
## Consultas que casam
Casam todos os nós
```
```cypher
MATCH (n)
RETURN n
```
Casam nós por label
```
```cypher
MATCH (a:Person)
RETURN a
```
Casam nós por label e propriedade
```
```cypher
MATCH (a:Person {name:"Théo Gauchoux"})
RETURN a
```
Casam nós de acordo com os relacionamentos (não direcionados)
```
```cypher
MATCH (a)-[:KNOWS]-(b)
RETURN a,b
```
Casam nós de acordo com os relacionamentos (direcionados)
```
```cypher
MATCH (a)-[:MANAGES]->(b)
RETURN a,b
```
Casam nós com um cláusula `WHERE`
```
```cypher
MATCH (p:Person {name:"Théo Gauchoux"})-[s:LIVES_IN]->(city:City)
WHERE s.since = 2015
RETURN p,state
@ -164,19 +154,17 @@ RETURN p,state
Você pode usa a cláusula `MATCH WHERE` com a cláusula `CREATE`
```
```cypher
MATCH (a), (b)
WHERE a.name = "Jacquie" AND b.name = "Michel"
CREATE (a)-[:KNOWS]-(b)
```
Atualizar consultas
---
## Atualizar consultas
Atualizar uma propriedade específica de um nó
```
```cypher
MATCH (p:Person)
WHERE p.name = "Théo Gauchoux"
SET p.age = 23
@ -184,7 +172,7 @@ SET p.age = 23
Substituir todas as propriedades de um nó
```
```cypher
MATCH (p:Person)
WHERE p.name = "Théo Gauchoux"
SET p = {name: "Michel", age: 23}
@ -192,7 +180,7 @@ SET p = {name: "Michel", age: 23}
Adicionar nova propriedade a um nó
```
```cypher
MATCH (p:Person)
WHERE p.name = "Théo Gauchoux"
SET p + = {studies: "IT Engineering"}
@ -200,19 +188,17 @@ SET p + = {studies: "IT Engineering"}
Adicione um label a um nó
```
```cypher
MATCH (p:Person)
WHERE p.name = "Théo Gauchoux"
SET p:Internship
```
Excluir consultas
---
## Excluir consultas
Excluir um nó específico (os relacionamentos vinculados devem ser excluídos antes)
```
```cypher
MATCH (p:Person)-[relationship]-()
WHERE p.name = "Théo Gauchoux"
DELETE relationship, p
@ -220,7 +206,7 @@ DELETE relationship, p
Remover uma propriedade em um nó específico
```
```cypher
MATCH (p:Person)
WHERE p.name = "Théo Gauchoux"
REMOVE p.age
@ -230,7 +216,7 @@ REMOVE p.age
Remover um label de um nó específico
```
```cypher
MATCH (p:Person)
WHERE p.name = "Théo Gauchoux"
DELETE p:Person
@ -238,7 +224,7 @@ DELETE p:Person
Excluir o banco de dados inteiro
```
```cypher
MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n, r
@ -246,9 +232,7 @@ DELETE n, r
*Sério, é o `rm -rf /` do Cypher !*
Outras cláusulas úteis
---
## Outras cláusulas úteis
`PROFILE`
Antes de uma consulta, mostre o plano de execução dela.
@ -259,9 +243,7 @@ Contar entidades (nós ou relacionamentos) que casam com **e**.
`LIMIT x`
Limite o resultado aos primeiros x resultados.
Dicas Especiais
---
## Dicas Especiais
- Há apenas comentários de uma linha no Cypher, com barras duplas : // Comentários
- Você pode executar um script Cypher armazenado em um arquivo **.cql** diretamente no Neo4j (é uma importação). No entanto, você não pode ter várias instruções neste arquivo (separadas por **;**).

View File

@ -13,11 +13,9 @@ Cypher - це мова запитів Neo4j для спрощення робот
[Деталі тут](https://neo4j.com/developer/cypher-query-language/)
## Вершини
Вершини
---
**Відображує запис у графі.**
#### Відображує запис у графі
`()`
Таким чином у запиті позначається пуста *вершина*. Використовується зазвичай для того, щоб позначити, що вона є, проте це не так вже й важливо для запиту.
@ -36,21 +34,18 @@ Cypher - це мова запитів Neo4j для спрощення робот
Наступні типи дозволяється використовувати у властивостях:
- Чиселиний
- Булевий
- Рядок
- Списки попередніх примітивних типів
- Чиселиний
- Булевий
- Рядок
- Списки попередніх примітивних типів
*Увага! В Cypher не існує типу, що відображає час. Замість нього можна використовувати рядок із визначеним шаблоном або чисельне відображення певної дати.*
`p.name`
За допомогою крапки можна звернутись до властивості вершини.
Зв'язки (або ребра)
---
**Сполучають дві вершини**
## Зв'язки (або ребра)
#### Сполучають дві вершини
`[:KNOWS]`
Це *зв'язок* з *ярликом* **KNOWS**. Це такий же самий *ярлик* як і у вершини. Починається з великої літери та використовує ВЕРХНІЙ\_РЕГІСТР\_ІЗ\_ЗМІЇНОЮ\_НОТАЦІЄЮ.
@ -64,11 +59,8 @@ Cypher - це мова запитів Neo4j для спрощення робот
`[k:KNOWS*..4]`
Це структурна інформація, яку використовують *шляхи*, які розглянуті нижче. В данному випадку, **\*..4** говорить: "Сумістити шаблон із зв'язком **k**, що повторюватиметься від одного до чотирьох разів."
Шляхи
---
**Спосіб поєднувати вершини та зв'язки.**
## Шляхи
#### Спосіб поєднувати вершини та зв'язки.
`(a:Person)-[:KNOWS]-(b:Person)`
Шлях описує, що вершини **a** та **b** знають (knows) один одного.
@ -84,7 +76,7 @@ Cypher - це мова запитів Neo4j для спрощення робот
Шаблони, які часто використовуються (з документації Neo4j):
```
```cypher
// Друг-мого-друга
(user)-[:KNOWS]-(friend)-[:KNOWS]-(foaf)
@ -98,13 +90,11 @@ path = shortestPath( (user)-[:KNOWS*..5]-(other) )
(root)<-[:PARENT*]-(leaf:Category)-[:ITEM]->(data:Product)
```
Запити на створення
---
## Запити на створення
Створити нову вершину:
```
```cypher
CREATE (a:Person {name:"Théo Gauchoux"})
RETURN a
```
@ -113,52 +103,51 @@ RETURN a
Створити новий зв'язок (із двома вершинами):
```
```cypher
CREATE (a:Person)-[k:KNOWS]-(b:Person)
RETURN a,k,b
```
Запити на знаходження
---
## Запити на знаходження
Знайти всі вершини:
```
```cypher
MATCH (n)
RETURN n
```
Знайти вершини за ярликом:
```
```cypher
MATCH (a:Person)
RETURN a
```
Знайти вершини за ярликом та властивістю:
```
```cypher
MATCH (a:Person {name:"Théo Gauchoux"})
RETURN a
```
Знайти вершини відповідно до зв'язків (ненаправлених):
```
```cypher
MATCH (a)-[:KNOWS]-(b)
RETURN a,b
```
Знайти вершини відповідно до зв'язків (направлених):
```
```cypher
MATCH (a)-[:MANAGES]->(b)
RETURN a,b
```
Знайти вершини за допомогою `WHERE`:
```
```cypher
MATCH (p:Person {name:"Théo Gauchoux"})-[s:LIVES_IN]->(city:City)
WHERE s.since = 2015
RETURN p,state
@ -166,19 +155,17 @@ RETURN p,state
Можна використовувати вираз `MATCH WHERE` разом із операцією `CREATE`:
```
```cypher
MATCH (a), (b)
WHERE a.name = "Jacquie" AND b.name = "Michel"
CREATE (a)-[:KNOWS]-(b)
```
Запити на оновлення
---
## Запити на оновлення
Оновити окрему властивість вершини:
```
```cypher
MATCH (p:Person)
WHERE p.name = "Théo Gauchoux"
SET p.age = 23
@ -186,7 +173,7 @@ SET p.age = 23
Оновити всі властивості вершини:
```
```cypher
MATCH (p:Person)
WHERE p.name = "Théo Gauchoux"
SET p = {name: "Michel", age: 23}
@ -194,7 +181,7 @@ SET p = {name: "Michel", age: 23}
Додати нову властивіcть до вершини:
```
```cypher
MATCH (p:Person)
WHERE p.name = "Théo Gauchoux"
SET p + = {studies: "IT Engineering"}
@ -202,19 +189,17 @@ SET p + = {studies: "IT Engineering"}
Повісити ярлик на вершину:
```
```cypher
MATCH (p:Person)
WHERE p.name = "Théo Gauchoux"
SET p:Internship
```
Запити на видалення
---
## Запити на видалення
Видалити окрему вершину (пов'язані ребра повинні бути видалені перед цим):
```
```cypher
MATCH (p:Person)-[relationship]-()
WHERE p.name = "Théo Gauchoux"
DELETE relationship, p
@ -222,7 +207,7 @@ DELETE relationship, p
Видалити властивість певної вершини:
```
```cypher
MATCH (p:Person)
WHERE p.name = "Théo Gauchoux"
REMOVE p.age
@ -232,7 +217,7 @@ REMOVE p.age
Видалити ярлик певної вершини:
```
```cypher
MATCH (p:Person)
WHERE p.name = "Théo Gauchoux"
DELETE p:Person
@ -240,7 +225,7 @@ DELETE p:Person
Видалити всю базу даних:
```
```cypher
MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n, r
@ -248,9 +233,7 @@ DELETE n, r
*Так, це `rm -rf /` на мові Cypher !*
Інші корисні запити
---
## Інші корисні запити
`PROFILE`
Перед виконанням, показати план виконання запитів.
@ -261,11 +244,9 @@ DELETE n, r
`LIMIT x`
Обмежити результат до x перших результатів.
## Особливі підказки
Особливі підказки
---
- У мові Cypher існують лише однорядкові коментарі, що позначаються двійним слешем : // Коментар
- У мові Cypher існують лише однорядкові коментарі, що позначаються двійним слешем : `// Коментар`
- Можна виконати скрипт Cypher, збережений у файлі **.cql** прямо в Neo4j (прямо як імпорт). Проте, не можна мати мати кілька виразів в цьому файлі (розділених **;**).
- Використовуйте командний рядок Neo4j для написання запитів Cypher, це легко і швидко.
- Cypher планує бути стандартною мовою запитів для всіх графових баз даних (більш відома як **OpenCypher**).