linksplatform / Protocols.Lino

A way to describe data using references and links.
https://linksplatform.github.io/Communication.Protocol.Lino
The Unlicense
3 stars 1 forks source link

Gitpod

NuGet Version and Downloads count Actions Status Codacy Badge CodeFactor

Protocols.Lino (русская версия)

LinksPlatform's Platform.Protocols.Lino Class Library.

introduction

This library gives you an ability to convert any string that contains links notation into a list of links and back to the string after modifications are made.

Links notation is based on two concepts references and links. Each reference references other link. The notation supports links with any number of references to other links.

Namespace: Platform.Protocols.Lino

NuGet package: Platform.Protocols.Lino

Examples

Links notation (lino)

Doublets (2-tuple)

papa (lovesMama: loves mama)
son lovesMama
daughter lovesMama
all (love mama)

Triplets (3-tuple)

papa has car
mama has house
(papa and mama) are happy

Sequences (N-tuple)

I'm a friendly AI.
(I'm a friendly AI too.)
(linksNotation: links notation)
(This is a linksNotation as well)
(linksNotation supports (unlimited number (of references) in each link))
(sequence (of references) surrounded by parentheses is a link)
parentheses may be ommitted if the whole line is a single link

So that means that this text is also links notation. So most of the text in the world already may be parsed as links notation. That makes links notation the most easy an natural/intuitive/native one.

Getting a IList\<Link>

(new Platform.Protocols.Lino.Parser()).Parse(@string)

Formatting the IList\<Link> back to string

using Platform.Protocols.Lino;
links.Format()

Documentation

PDF file with code for e-readers.

Depend on