Skip to content

Commit

Permalink
update release notes
Browse files Browse the repository at this point in the history
  • Loading branch information
irina-dragoste committed May 21, 2020
1 parent 6a128c9 commit b0bb1d8
Showing 1 changed file with 124 additions and 120 deletions.
244 changes: 124 additions & 120 deletions RELEASE-NOTES.md
Original file line number Diff line number Diff line change
@@ -1,120 +1,124 @@
Rulewerk Release Notes
====================

Rulewerk v0.6.0
-------------

Breaking changes:
* VLog4j is now called Rulewerk.
* In the example package, `ExamplesUtils.getQueryAnswerCount(queryString, reasoner)` does no
longer exist. It can be replaced by
`reasoner.countQueryAnswers(RuleParser.parsePositiveLiteral(queryString)).getCount()`
* The `FileDataSource` constructor and those of derived classes now
take the path to a file instead of `File` object.
* The VLog backend has been moved to a new `rulewerk-vlog` module,
changing several import paths. `Reasoner.getInstance()` is
gone. Furthermore, InMemoryDataSource has become an abstract class,
use VLogInMemoryDataSource where applicable.

New features:
* Counting query answers is more efficient now, using `Reasoner.countQueryAnswers()`
* All inferred facts can be serialized to a file using `Reasoner.writeInferences()`
* All inferred facts can be obtained as a Stream using `Reasoner.getInferences()`
* Knowledge bases can be serialized to a file using `KnowlegdeBase.writeKnowledgeBase()`
* Rules files may import other rules files using `@import` and
`@import-relative`, where the latter resolves relative IRIs using
the current base IRI, unless the imported file explicitly specifies
a different one.
* Named nulls of the form `_:name` are now allowed during parsing (but
may not occur in rule bodies). They are renamed to assure that they
are distinct on a per-file level.
* The parser allows custom directives to be implemented, and a certain
set of delimiters allows for custom literal expressions.

Other improvements:
* Prefix declarations are now kept as part of the Knowledge Base and
are used to abbreviate names when exporting inferences.


VLog4j v0.5.0
-------------

Breaking changes:
* The data model for rules has been refined and changed:
* Instead of Constant, specific types of constants are used to capture abtract and data values
* Instead of Variable, ExistentialVariable and UniversalVariable now indicate quantification
* Blank was renamed to NamedNull to avoid confusion with RDF blank nodes
* Methods to access terms now use Java Streams and are unified across syntactic objects
* Data source declarations now use brackets to denote arity, e.g., `@source predicate[2]: load-csv()`

New features:
* New module vlog4j-client provides a stand-alone command line client jar for VLog4j
* A wiki for VLog4j use and related publications has been created: https://github.com/knowsys/vlog4j/wiki
* The parser behaviour for data source declarations and certain datatype literals can be customised.

Other improvements:
* Data model is better aligned with syntax supported by parser
* Java object Statements (rules, facts, datasource declarations) String representation is parseable
* OWL API dependency has been upgraded from 4.5.1 to latest (5.1.11)
* SL4J dependency has been upgraded from 1.7.10 to latest (1.7.28)
* Cobertura test coverage tool has been replaced by JaCoCo

Bugfixes:
* Acyclicity checks work again without calling reason() first (issue #128)
* in vlog4j-owlapi, class expressions of type ObjectMaxCardinality are not allowed in superclasses (issue #104)
* in vlog4j-owlapi, class expressions of type ObjectOneOf are only allowed as subclasses in axioms of type subClassOf (issue #20)
* When parsing syntactic fragment such as Facts or Literals, the parser now enforces that all input is consumed.

VLog4j v0.4.0
-------------

Breaking changes:
* The Reasoner interface has changed (knowledge base and related methods moved to KnowledgeBase)
* The EdbIdbSeparation is obsolete and does no longer exist
* IRIs loaded from RDF inputs no longer include surrounding < > in their string identifier
* A new interface Fact has replaced the overly general PositiveLiteral in many places

New features:
* New own syntax for rules, facts, and data sources to create knowledge bases from files or strings in Java
* Input predicates can now be used with multiple sources and in rule heads (no more EDB-IDB distinction)
* New InMemoryDataSource for efficient in-memory fact loading
* New KnowledgeBase class separates facts, data sources, and rules from the actual Reasoner
* Modifications to the knowledge base are taken into account by the reasoner
* New and updated example programs to illustrate use of syntax

Other improvements:
* Query results now indicate their guaranteed correctness (example: answers can be incomplete when setting a timeout)
* Faster and more memory-efficient loading of facts
* Better error reporting; improved use of exceptions
* Better logging, especially on the INFO level
* Better code structure and testing

Bugfixes:
* Several reasoning errors in VLog (backend) have been discovered and fixed in the version used now


VLog4j v0.3.0
-------------

New features:
* Support for Graal data structures (conversion from Graal model to VLog model objects)
* Stratified negation: rule bodies are conjunctions of positive or negated literals
* SPARQL-based data sources: load remote data from SPARQL endpoints
* Acyclicity and cyclicity checks: JA, RJA, MFA, RMFA, RFC, as well as a generic method that checks whether given set or rules and fact predicates are acyclic, cyclic, or undetermined

VLog4j v0.2.0
-------------

New features:
* supporting File data sources of N-Triples format (.nt file extension)
* supporting g-zipped data source files (.csv.gz, .nt.gz)

VLog4j v0.1.0
-------------

Initial release.

New features:
* Essential data models for rules and facts, and essential reasoner functionality
* support for reading from RDF files
* support for converting rules from OWL ontology, loaded with the OWL API
Rulewerk Release Notes
====================

Rulewerk v0.6.0
-------------

Breaking changes:
* VLog4j is now called Rulewerk. Consequently, the groupId, artifact Ids, and package names
of the project have changed.
* In the examples package, `ExamplesUtils.getQueryAnswerCount(queryString, reasoner)` does no
longer exist. It can be replaced by
`reasoner.countQueryAnswers(RuleParser.parsePositiveLiteral(queryString)).getCount()`
* The `FileDataSource` constructor and those of child classes (`CsvFileDataSource`, `RdfFileDataSource`)
now take the String path to a file instead of `File` object.
* The VLog backend has been moved to a new `rulewerk-vlog` module,
changing several import paths. `Reasoner.getInstance()` is
gone. Furthermore, `InMemoryDataSource` has become an abstract class,
use `VLogInMemoryDataSource` where applicable.

New features:
* Counting query answers is more efficient now, using `Reasoner.countQueryAnswers()`
* All inferred facts can be serialized to a file using `Reasoner.writeInferences()`
* All inferred facts can be obtained as a Stream using `Reasoner.getInferences()`
* `Reasoner.getCorrectness()` returns the correctness result of the last reasoning task.
* Knowledge bases can be serialized to a file using `KnowlegdeBase.writeKnowledgeBase()`
* Rules files may import other rules files using `@import` and
`@import-relative`, where the latter resolves relative IRIs using
the current base IRI, unless the imported file explicitly specifies
a different one.
* Named nulls of the form `_:name` are now allowed during parsing (but
may not occur in rule bodies). They are renamed to assure that they
are distinct on a per-file level.
* The parser allows custom directives to be implemented, and a certain
set of delimiters allows for custom literal expressions.

Other improvements:
* Prefix declarations are now kept as part of the Knowledge Base and
are used to abbreviate names when exporting inferences.

Bugfixes:
* Several reasoning errors in VLog (backend) have been discovered and fixed in the version used now

VLog4j v0.5.0
-------------

Breaking changes:
* The data model for rules has been refined and changed:
* Instead of Constant, specific types of constants are used to capture abtract and data values
* Instead of Variable, ExistentialVariable and UniversalVariable now indicate quantification
* Blank was renamed to NamedNull to avoid confusion with RDF blank nodes
* Methods to access terms now use Java Streams and are unified across syntactic objects
* Data source declarations now use brackets to denote arity, e.g., `@source predicate[2]: load-csv()`

New features:
* New module vlog4j-client provides a stand-alone command line client jar for VLog4j
* A wiki for VLog4j use and related publications has been created: https://github.com/knowsys/vlog4j/wiki
* The parser behaviour for data source declarations and certain datatype literals can be customised.

Other improvements:
* Data model is better aligned with syntax supported by parser
* Java object Statements (rules, facts, datasource declarations) String representation is parseable
* OWL API dependency has been upgraded from 4.5.1 to latest (5.1.11)
* SL4J dependency has been upgraded from 1.7.10 to latest (1.7.28)
* Cobertura test coverage tool has been replaced by JaCoCo

Bugfixes:
* Acyclicity checks work again without calling reason() first (issue #128)
* in vlog4j-owlapi, class expressions of type ObjectMaxCardinality are not allowed in superclasses (issue #104)
* in vlog4j-owlapi, class expressions of type ObjectOneOf are only allowed as subclasses in axioms of type subClassOf (issue #20)
* When parsing syntactic fragment such as Facts or Literals, the parser now enforces that all input is consumed.

VLog4j v0.4.0
-------------

Breaking changes:
* The Reasoner interface has changed (knowledge base and related methods moved to KnowledgeBase)
* The EdbIdbSeparation is obsolete and does no longer exist
* IRIs loaded from RDF inputs no longer include surrounding < > in their string identifier
* A new interface Fact has replaced the overly general PositiveLiteral in many places

New features:
* New own syntax for rules, facts, and data sources to create knowledge bases from files or strings in Java
* Input predicates can now be used with multiple sources and in rule heads (no more EDB-IDB distinction)
* New InMemoryDataSource for efficient in-memory fact loading
* New KnowledgeBase class separates facts, data sources, and rules from the actual Reasoner
* Modifications to the knowledge base are taken into account by the reasoner
* New and updated example programs to illustrate use of syntax

Other improvements:
* Query results now indicate their guaranteed correctness (example: answers can be incomplete when setting a timeout)
* Faster and more memory-efficient loading of facts
* Better error reporting; improved use of exceptions
* Better logging, especially on the INFO level
* Better code structure and testing

Bugfixes:
* Several reasoning errors in VLog (backend) have been discovered and fixed in the version used now


VLog4j v0.3.0
-------------

New features:
* Support for Graal data structures (conversion from Graal model to VLog model objects)
* Stratified negation: rule bodies are conjunctions of positive or negated literals
* SPARQL-based data sources: load remote data from SPARQL endpoints
* Acyclicity and cyclicity checks: JA, RJA, MFA, RMFA, RFC, as well as a generic method that checks whether given set or rules and fact predicates are acyclic, cyclic, or undetermined

VLog4j v0.2.0
-------------

New features:
* supporting File data sources of N-Triples format (.nt file extension)
* supporting g-zipped data source files (.csv.gz, .nt.gz)

VLog4j v0.1.0
-------------

Initial release.

New features:
* Essential data models for rules and facts, and essential reasoner functionality
* support for reading from RDF files
* support for converting rules from OWL ontology, loaded with the OWL API

0 comments on commit b0bb1d8

Please sign in to comment.