Skip to content

Latest commit

 

History

History
145 lines (107 loc) · 8.78 KB

File metadata and controls

145 lines (107 loc) · 8.78 KB

links-notation (languages: en • ru)

Состояние Actions Версия npm пакета и количество загрузок JavaScript
Состояние Actions Версия Crates.io и количество загрузок Rust
Состояние Actions Версия NuGet пакета и количество загрузок C#
Состояние Actions Версия PyPI и количество загрузок Python
Состояние Actions Версия Maven Central Java

Gitpod Open in GitHub Codespaces

Codacy Badge CodeFactor

Библиотека классов Link Foundation Link.Foundation.Links.Notation.

introduction

Эта библиотека дает вам возможность преобразовать любую строку, содержащую обозначение связей, в список связей и форматировать этот список обратно в строку после внесения изменений.

Нотация связей основана на двух концепциях: ссылка и связь. Каждая ссылка ссылается на другую связь. Нотация поддерживает связи с любым количеством ссылок на другие связи.

Быстрый старт

C#

var parser = new Link.Foundation.Links.Notation.Parser();
var links = parser.Parse("папа (любитМаму: любит маму)");

JavaScript

import { Parser } from 'links-notation';
const parser = new Parser();
const links = parser.parse("папа (любитМаму: любит маму)");

Rust

use links_notation::parse_lino;
let links = parse_lino("папа (любитМаму: любит маму)").unwrap();

Python

from links_notation import Parser
parser = Parser()
links = parser.parse("папа (любитМаму: любит маму)")

Java

import io.github.linkfoundation.linksnotation.Parser;
Parser parser = new Parser();
List<Link> links = parser.parse("папа (любитМаму: любит маму)");

Примеры

Нотация связей

Дуплеты (2-кортежи)

папа (любитМаму: любит маму)
сын любитМаму
дочь любитМаму
все (любят маму)

Триплеты (3-кортежи)

папа имеет машину
мама имеет дом
(папа и мама) счастливы

Последовательности (N-кортежи)

Я дружелюбный ИИ.
(Я тоже дружелюбный ИИ.)
(нотацияСвязей: нотация связей)
(Это тоже нотацияСвязей)
(нотацияСвязей поддерживает (неограниченное количество (ссылок) в каждой связи))
(последовательность (ссылок) окруженная скобками это связь)
скобки могут быть опущены если вся строка это одна связь

Это означает что этот текст тоже является нотацией связей. Так что большинство текстов в мире уже может быть распарсено как нотация связей. Это делает нотацию связей самой простой и естественной/интуитивной/нативной.

Что такое Нотация Связей?

Нотация Связей (Lino) - это простой, интуитивный формат для представления структурированных данных в виде связей между сущностями ссылками на связи. Он разработан для того, чтобы быть:

  • Естественным: Большинство текстов уже может быть распарсено как нотация связей
  • Гибким: Поддерживает любое количество ссылок в каждой связи
  • Универсальным: Может представлять дублеты, триплеты и N-кортежи
  • Иерархическим: Поддерживает вложенные структуры с отступами

Нотация использует две основные концепции:

  • Ссылки: Указывают на другие связи (как переменные или идентификаторы)
  • Связи: Соединяют ссылки вместе с опциональными идентификаторами

Документация

Для подробных руководств по реализации и справочников API смотрите документацию для конкретных языков:

  • Документация C# - Полный справочник API
  • README C# - Руководство по установке и использованию
  • README JavaScript - Руководство для современной веб-разработки
  • README Rust - Руководство по высокопроизводительному парсингу
  • README Python - Руководство по работе с пакетом Python
  • README Java - Руководство по работе с пакетом Java/Maven

Дополнительные ресурсы: