# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## Unreleased

## [1.12.2] - 2025-10-22

### Fixed
- Removed wrong line `## [--help] - 2025-09-22` in changelog.
- YAML block scalars (multiline strings) don't observe style indicators (|>) (see [issue 214](https://github.com/RMLio/yarrrml-parser/issues/214))

## [1.12.1] - 2025-09-22

### Added

- Support for `type: blank` for subjects (fixes [issue 198](https://github.com/RMLio/yarrrml-parser/issues/198))

## [1.12.0] - 2025-08-27

### Changed
- HTTP Request Targets: change from deprecated `rmle:contentType` to generic `htv:headers`.

## [1.11.0] - 2025-07-10

### Added

- Support for `localfile` target (fixes [internal issue 22](https://gitlab.ilabt.imec.be/yarrrml/yarrrml-parser/-/issues/22) and [internal issue 24](https://gitlab.ilabt.imec.be/yarrrml/yarrrml-parser/-/issues/24))
- Support for `sparql` target (in addition to `sd`)

### Changed

- Updated dependencies and removed deprecated `Q` dependency

### Fixed

- Support for `dcat` target in dynamic targets (fixes [internal issue 23](https://gitlab.ilabt.imec.be/yarrrml/yarrrml-parser/-/issues/23))
- Support for `['/data/out/people.ttl', 'turtle']` target shortcuts

## [1.10.1] - 2025-06-26

### Changed

- Update `prefix-ns`

## [1.10.0] - 2025-03-11

### Fixed
- added dynamic targets for predicate maps and object maps
- added arrays of dynamic targets in the targets collection of a term map

## [1.9.0] - 2025-02-26

### Added
- support for [Dynamic Targets](https://rml.io/specs/target/dynamictarget/) with explicit id
- support for [Dynamic Targets](https://rml.io/specs/target/dynamictarget/) with more than one variable

## [1.8.0] - 2025-02-11

### Added
- Support for [HTTP request Access](https://rml.io/specs/access/httprequest/).
- Support for [Dynamic Targets](https://rml.io/specs/target/dynamictarget/)

## [1.7.2] - 2024-09-17

### Fixed
- CI: NPM release.
- IncRML generation: changeDetection: subjects [] should remove all original subject mappings

## [1.7.1] - 2024-09-17

### Changed
- CI improvements: local deployment script.

## [1.7.0] - 2024-09-17

### Added
- Keys to generate [IncRML](https://www.semantic-web-journal.org/content/incrml-incremental-knowledge-graph-construction-heterogeneous-data-sources).

### Changed
- IDLab functions prefix (`idlab-fn`) now resolves to `https://w3id.org/imec/idlab/function#` instead the old IRI `http://example.com/idlab/function/`

### Fixed
- Shortkeys for targets only work for targets specified on document level.

## [1.6.2] - 2024-02-16

### Fixed
- target disappears when it is used in combination with condition on po 
(see [issue 11](https://gitlab.ilabt.imec.be/yarrrml/yarrrml-parser/-/issues/11)).

## [1.6.1] - 2023-09-18

### Fixed
- Mapping with multiple sources linked to another mapping with multiple sources only resulted in half of 
Referencing Objects Maps.
- Override `rmlt` and `comp` namespaces.

## [1.6.0] - 2023-08-22

### Added

- abstract-generator: Create IRI constant if term type is IRI, in line with the specs

### Fixed

- (r2)rml-generator: Log error when a source tag has no definition

## [1.5.4] - 2023-06-23

### Fixed

- Dockerfile: faster and node v18

## [1.5.3] - 2023-06-23

### Fixed

- Common prefixes + namespaces are initialized once, in line with old code

## [1.5.2] - 2023-06-20

### Fixed

- LDES tests

## [1.5.1] - 2023-06-16

### Fixed

- LDES: when `versionOfPath` is empty or has just one value, incorrect default predicate-object mappings were generated (internal [issue 6](https://gitlab.ilabt.imec.be/yarrrml/yarrrml-parser/-/issues/6)).
- (Common) prefixes + namespaces are initialized once, in line with old code
- Tests: fixed comparing output generated by `rml-generator` and expected output.
- Common prefixes + namespaces are initialized once.

## [1.5.0] - 2023-06-13

### Added

- Support for LDES

### Fixed

- expander: fix graphs example from spec (see [issue 188](https://github.com/RMLio/yarrrml-parser/issues/188))
- wrong namespace gets fetched from prefix.cc for rml prefix. Hardcode it.

## [1.4.0] - 2022-11-18

### Added

- Support joins when doing RML2YARRRML

### Fixed

- abstract-generator: ignore str1 & str2 param for equal (see [issue 152](https://github.com/RMLio/yarrrml-parser/issues/152))
- improved testing code
- updated dependencies
 
## [1.3.6] - 2022-09-28

### Fixed

- No more unneeded parentTermMap generation (fixing https://github.com/RMLio/yarrrml-parser/issues/171)

## [1.3.5] - 2022-04-26

### Changed
- Allow datatype: rdf:langString in case language: is given (see [issue 160](https://github.com/RMLio/yarrrml-parser/issues/160))

### Added
- RELEASE: added release instructions

## [1.3.4] - 2022-01-27

### Added
- CI: automatic run tests and create releases.
- CI: enforce CHANGELOG updates.
- CI: correct Gitlab access token variable name.

### Fixed
- Lock Graphy version to 4.3.3 (see [issue 149](https://github.com/RMLio/yarrrml-parser/issues/149)).

## [1.3.3] - 2022-01-07

### Fixed
- sqlVersion is added correctly
- language tag on condition is correctly parsed (see [issue 142](https://github.com/RMLio/yarrrml-parser/issues/142))

### Changed
- Made all RML test results pretty, for easier inspection of the examples
- Added multiple conditions test

## [1.3.2] - 2021-09-29

### Added
- `pretty` parameter for pretty output

### Fixed
- Help text of CLI
- Object type 'iri' discarded as of second source in a mapping that has multiple sources (see [issue 137](https://github.com/RMLio/yarrrml-parser/issues/137))

## [1.3.1] - 2021-08-11

### Changed
- Update `rdf-serializer-jsonld-ext` dependency (see [issue 128](https://github.com/RMLio/yarrrml-parser/issues/128))

## [1.3.0] - 2021-07-05

### Added
- Web of Things support
- Target support

## [1.2.3] - 2021-05-28

### Fixed

- Fix N3 outdated constructor (see [issue 115](https://github.com/RMLio/yarrrml-parser/issues/115))
- updated commander

## [1.2.2] - 2021-02-23

### Added
- Logger to catch convert errors (see [issue 102](https://github.com/RMLio/yarrrml-parser/issues/102))

### Fixed
- Fix invalid input argument type array, in fs.watchFile()
- Fix N3 addTriples() is not a function, in fs.watchFile()
- Cannot find module rml2yarrrml when running yarrrml-generator (see [issue 106](https://github.com/RMLio/yarrrml-parser/issues/106))
    - Language with template not converted to Language Map  (see [issue 107](https://github.com/RMLio/yarrrml-parser/issues/107))

### Changed
- Update dev deps
- Update deps

## [1.2.1] - 2020-09-04

### Fixed
- Fix docker build command in README (see [issue 91](https://github.com/RMLio/yarrrml-parser/issues/91))
- Test example5 is invalid YARRRML (see [issue 93](https://github.com/RMLio/yarrrml-parser/issues/93))
- Mapping TSV files (see [issue 95](https://github.com/RMLio/yarrrml-parser/issues/95))

### Changed
- Update dev deps

## [1.2.0] - 2020-08-17

### Added
- rr:class flag (see [issue 73](https://github.com/RMLio/yarrrml-parser/issues/73))
- Allow multiple input files for the CLI  (see [issue 34](https://github.com/RMLio/yarrrml-parser/issues/34))
- reference formulation for CSS  (see [issue 37](https://github.com/RMLio/yarrrml-parser/issues/37))
- Allow multiple input files for the CLI  (see [issue 34](https://github.com/RMLio/yarrrml-parser/issues/34))
- Overwrite references  (see [issue 35](https://github.com/RMLio/yarrrml-parser/issues/35))
- Support authors (see [issue 87](https://github.com/RMLio/yarrrml-parser/issues/87))

### Fixed
- Condition on mapping when subject has function fails (see [issue 75](https://github.com/RMLio/yarrrml-parser/issues/75))
- Create blank node as object (see [issue 59](https://github.com/RMLio/yarrrml-parser/issues/59))
- Condition on mapping with blank node as subject gives error (see [issue 31](https://github.com/RMLio/yarrrml-parser/issues/31))

### Changed
- Pad suffixes to keep ordering (see [issue 78](https://github.com/RMLio/yarrrml-parser/issues/78))

## [1.1.1] - 2020-05-11

### Fixed
- equal shortcut does not work everywhere (see [issue 51](https://github.com/RMLio/yarrrml-parser/issues/51))
- Conditional predicate-object with datatype (see [issue 69](https://github.com/RMLio/yarrrml-parser/issues/69))

## [1.1.0] - 2020-04-02

### Added
- Issue template for question (see [issue 48](https://github.com/RMLio/yarrrml-parser/issues/48))
- Explain how to install locally for development (see [issue 45](https://github.com/RMLio/yarrrml-parser/issues/45))
- Add function shortcut (see [issue 57](https://github.com/RMLio/yarrrml-parser/issues/57))

### Fixed
- Function with empty parameter list works, but without parameters doesn't get parsed properly  (see [issue 53](https://github.com/RMLio/yarrrml-parser/issues/53))
- Add quotes around rules specific part in error/warning message  (see [issue 52](https://github.com/RMLio/yarrrml-parser/issues/52))

## [1.0.2] - 2020-01-17

### Added
- Test for subject with two references in template
- Issue templates (see [issue 43](https://github.com/RMLio/yarrrml-parser/issues/43))

### Fixed
- Join condition with two references in child/parent is incorrectly parsed (see [issue 44](https://github.com/RMLio/yarrrml-parser/issues/44))

## [1.0.1] - 2020-01-10

### Fixed
- Joining on equal condition with constant value (see [issue 39](https://github.com/RMLio/yarrrml-parser/issues/39))

## [1.0.0] - 2020-01-06

### Added
- Support for RDBs via D2RQ (see [issue 36](https://github.com/RMLio/yarrrml-parser/issues/36))

### Fixed
- FnO namespace

## [0.3.11] - 2019-12-02

### Fixed
- Object is number (see [issue 32](https://github.com/RMLio/yarrrml-parser/issues/32))

## [0.3.10] - 2019-10-28

### Fixed
- Escape brackets (see [issue 27](https://github.com/RMLio/yarrrml-parser/issues/27))

## [0.3.9] - 2019-10-22

### Fixed
- Restore escaped colons (see [issue 25](https://github.com/RMLio/yarrrml-parser/issues/25))

## [0.3.8] - 2019-09-26

### Fixed
- Not all escaped characters were considered when expanding prefix (see [issue 23](https://github.com/RMLio/yarrrml-parser/issues/23))

## [0.3.7] - 2019-08-14

### Added
- Tests for R2RML

### Fixed
- Names of classes and files
- Support one function on subjects directly (= no need to put it in an array)
- Datatype on function result (see [issue 12](https://github.com/RMLio/yarrrml-parser/issues/12))
- Condition on a single object (see [issue 21](https://github.com/RMLio/yarrrml-parser/issues/21))

## [0.3.6] - 2019-08-12

### Fixed
- Condition and function on the same predicate object (see [issue 17](https://github.com/RMLio/yarrrml-parser/issues/17))

## [0.3.5] - 2019-08-05

## Added
- Support templates on predicates

## [0.3.4] - 2019-08-05

### Adding
- Shortcuts for `mappings`

## [0.3.3] - 2019-06-19

### Fixed
- updated mocha to 6.1.4 (security issue with 6.1.3)

## [0.3.2] - 2019-04-15

### Changed
- updated package versions
- removed winston logger

## [0.3.1] - 2019-02-28

### Added
- support condition on mappings (IRIs only), predicateobjects

## [0.3.0] - 2018-12-07

### Added
- rml2yarrrml bin

### Changed
- splitted general bin

## [0.2.3] - 2018-11-07

### Added
- support recursive functions with join conditions

### Fixed
- recursive functions were broken due to changes in [0.2.0]

## [0.2.2] - 2018-10-23

### Fixed
- use rml:reference with Subject Map when needed

## [0.2.1] - 2018-09-26

### Fixed
- correctly process `~iri` and `~literal` for parameter values of functions

## [0.2.0] - 2018-09-06

### Added
- support functions with join conditions

### Changed
- use rml:reference where needed
- updated dependencies

### Fixed
- templates can use `{}` and will be escaped

## [0.1.6] - 2018-08-22

### Added
- Allow sources to also use a string (not only array) to refer to a source

## 0.1.5 - 2018-08-13

### Added
- clearer error when invalid YAML
- warn when source is not defined
- warn when po is not complete
- fix failing test
- support for recursive functions

[1.12.2]: https://github.com/RMLio/yarrrml-parser/compare/v1.12.1...v1.12.2
[1.12.1]: https://github.com/RMLio/yarrrml-parser/compare/v1.12.0...v1.12.1
[1.12.0]: https://github.com/RMLio/yarrrml-parser/compare/v1.11.0...v1.12.0
[1.11.0]: https://github.com/RMLio/yarrrml-parser/compare/v1.10.1...v1.11.0
[1.10.1]: https://github.com/RMLio/yarrrml-parser/compare/v1.10.0...v1.10.1
[1.10.0]: https://github.com/RMLio/yarrrml-parser/compare/v1.9.0...v1.10.0
[1.9.0]: https://github.com/RMLio/yarrrml-parser/compare/v1.8.0...v1.9.0
[1.8.0]: https://github.com/RMLio/yarrrml-parser/compare/v1.7.2...v1.8.0
[1.7.2]: https://github.com/RMLio/yarrrml-parser/compare/v1.7.1...v1.7.2
[1.7.1]: https://github.com/RMLio/yarrrml-parser/compare/v1.7.0...v1.7.1
[1.7.0]: https://github.com/RMLio/yarrrml-parser/compare/v1.6.2...v1.7.0
[1.6.2]: https://github.com/RMLio/yarrrml-parser/compare/v1.6.1...v1.6.2
[1.6.1]: https://github.com/RMLio/yarrrml-parser/compare/v1.6.0...v1.6.1
[1.6.0]: https://github.com/RMLio/yarrrml-parser/compare/v1.5.4...v1.6.0
[1.5.4]: https://github.com/RMLio/yarrrml-parser/compare/v1.5.3...v1.5.4
[1.5.3]: https://github.com/RMLio/yarrrml-parser/compare/v1.5.2...v1.5.3
[1.5.2]: https://github.com/RMLio/yarrrml-parser/compare/v1.5.1...v1.5.2
[1.5.1]: https://github.com/RMLio/yarrrml-parser/compare/v1.5.0...v1.5.1
[1.5.0]: https://github.com/RMLio/yarrrml-parser/compare/v1.4.0...v1.5.0
[1.4.0]: https://github.com/RMLio/yarrrml-parser/compare/v1.3.6...v1.4.0
[1.3.6]: https://github.com/RMLio/yarrrml-parser/compare/v1.3.5...v1.3.6
[1.3.5]: https://github.com/RMLio/yarrrml-parser/compare/v1.3.4...v1.3.5
[1.3.4]: https://github.com/RMLio/yarrrml-parser/compare/v1.3.3...v1.3.4
[1.3.3]: https://github.com/RMLio/yarrrml-parser/compare/v1.3.2...v1.3.3
[1.3.2]: https://github.com/RMLio/yarrrml-parser/compare/v1.3.1...v1.3.2
[1.3.1]: https://github.com/RMLio/yarrrml-parser/compare/v1.3.0...v1.3.1
[1.3.0]: https://github.com/RMLio/yarrrml-parser/compare/v1.2.3...v1.3.0
[1.2.3]: https://github.com/RMLio/yarrrml-parser/compare/v1.2.2...v1.2.3
[1.2.2]: https://github.com/RMLio/yarrrml-parser/compare/v1.2.1...v1.2.2
[1.2.1]: https://github.com/RMLio/yarrrml-parser/compare/v1.2.0...v1.2.1
[1.2.0]: https://github.com/RMLio/yarrrml-parser/compare/v1.1.1...v1.2.0
[1.1.1]: https://github.com/RMLio/yarrrml-parser/compare/v1.1.0...v1.1.1
[1.1.0]: https://github.com/RMLio/yarrrml-parser/compare/v1.0.2...v1.1.0
[1.0.2]: https://github.com/RMLio/yarrrml-parser/compare/v1.0.1...v1.0.2
[1.0.1]: https://github.com/RMLio/yarrrml-parser/compare/v1.0.0...v1.0.1
[1.0.0]: https://github.com/RMLio/yarrrml-parser/compare/v0.3.11...v1.0.0
[0.3.11]: https://github.com/RMLio/yarrrml-parser/compare/v0.3.10...v0.3.11
[0.3.10]: https://github.com/RMLio/yarrrml-parser/compare/v0.3.9...v0.3.10
[0.3.9]: https://github.com/RMLio/yarrrml-parser/compare/v0.3.8...v0.3.9
[0.3.8]: https://github.com/RMLio/yarrrml-parser/compare/v0.3.7...v0.3.8
[0.3.7]: https://github.com/RMLio/yarrrml-parser/compare/v0.3.6...v0.3.7
[0.3.6]: https://github.com/RMLio/yarrrml-parser/compare/v0.3.5...v0.3.6
[0.3.5]: https://github.com/RMLio/yarrrml-parser/compare/v0.3.4...v0.3.5
[0.3.4]: https://github.com/RMLio/yarrrml-parser/compare/v0.3.3...v0.3.4
[0.3.3]: https://github.com/RMLio/yarrrml-parser/compare/v0.3.2...v0.3.3
[0.3.2]: https://github.com/RMLio/yarrrml-parser/compare/v0.3.1...v0.3.2
[0.3.1]: https://github.com/RMLio/yarrrml-parser/compare/v0.3.0...v0.3.1
[0.3.0]: https://github.com/RMLio/yarrrml-parser/compare/v0.2.3...v0.3.0
[0.2.3]: https://github.com/RMLio/yarrrml-parser/compare/v0.2.2...v0.2.3
[0.2.2]: https://github.com/RMLio/yarrrml-parser/compare/v0.2.1...v0.2.2
[0.2.1]: https://github.com/RMLio/yarrrml-parser/compare/v0.2.0...v0.2.1
[0.2.0]: https://github.com/RMLio/yarrrml-parser/compare/v0.1.6...v0.2.0
[0.1.6]: https://github.com/RMLio/yarrrml-parser/compare/v0.1.5...v0.1.6
