You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This gem implements the [LD Patch][] specification with a couple of changes and/or limitations:
12
+
13
+
* The `INDEX` terminal was replaced by `INTEGER`. Having two terminals matching the same token strings causes a conflict. As a result, a _slice_ may contain positive integers, as well as unsigned and negative-integers.
14
+
* The _graph_ rule is changed to the following:
15
+
16
+
[18] graph ::= triples ('.' triples?)*
17
+
18
+
This is necessary as the specified production is not context-free. As a result, it is possible for a graph to contain multiple trailing "`.`".
19
+
20
+
[LD Patch][] is useful inside a Rack container where it can respond to `POST` messages to affect the modification of a _target graph_ identified using the URL of the `POST`.
21
+
22
+
## Features
23
+
24
+
* 100% free and unencumbered [public domain](http://unlicense.org/) software.
25
+
* Complete [Linked Data Patch Format][LD Patch] parsing and execution
Full documentation available on [Rubydoc.info][LD-Patch doc]
31
+
32
+
## Implementation Notes
33
+
The reader uses the [EBNF][] gem to generate first, follow and branch tables, and uses the `Parser` and `Lexer` modules to implement the LD Patch parser.
34
+
35
+
The parser takes branch and follow tables generated from the [LD Patch Grammar](file.ld-patch.html) described in the [specification][LD Patch]. Branch and Follow tables are specified in the generated {LD::Patch::Meta}.
This repository uses [Git Flow](https://github.com/nvie/gitflow) to mange development and release activity. All submissions _must_ be on a feature branch based on the _develop_ branch to ease staging and integration.
54
+
55
+
* Do your best to adhere to the existing coding conventions and idioms.
56
+
* Don't use hard tabs, and don't leave trailing whitespace on any line.
57
+
* Do document every method you add using [YARD][] annotations. Read the [tutorial][YARD-GS] or just look at the existing code for examples.
58
+
* Don't touch the `.gemspec`, `VERSION` or `AUTHORS` files. If you need to change them, do so on your private branch only.
59
+
* Do feel free to add yourself to the `CREDITS` file and the corresponding list in the the `README`. Alphabetical order applies.
60
+
* Do note that in order for us to merge any non-trivial changes (as a rule of thumb, additions larger than about 15 lines of code), we need an explicit [public domain dedication][PDD] on record from you.
61
+
62
+
## License
63
+
This is free and unencumbered public domain software. For more information,
64
+
see <http://unlicense.org/> or the accompanying {file:LICENSE} file.
65
+
66
+
A copy of the [LD Patch EBNF](file:etc/ld-patch.ebnf) and derived parser files are included in the repository, which are not covered under the UNLICENSE. These files are covered via the [W3C Document License](http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231).
0 commit comments