Change Log
==========

Pellet 2.3.1 (May 7, 2013)
--------------------------

* UPDATED: OWLAPI v3 to 3.4.3

* UPDATED: Jena to 2.10.0

* REMOVED: Deprecated DIG support

* REMOVED: Deprecated OWLAPI v2 support

* REMOVED: Deprecated datatype reasoner and xsdlib jars


Pellet 2.3 (Aug 22, 2011)
-------------------------

* UPDATED: OWLAPI v3 to 3.2.4

* UPDATED: Jena to 2.6.4

* FIXED: Classification errors in EL ontologies

* FIXED: SWRL support for comparison functions with non-numeric
         datatypes (xsd:date, xsd:time, etc.)

* FIXED: Datatype reasoner bugs related to floating point types
         
* FIXED: Loading union models where type declarations are
         recursively dependent
         
* FIXED: Incorrect disjoint property inferences for data properties      

* FIXED: Various other bugs; see the following link for a list of all 
         the bugs that have been fixed:
     
         http://clark-parsia.trac.cvsdude.com/pellet-devel/report/11

Pellet 2.2.2 (Sep 16, 2010)
---------------------------

* UPDATED: OWLAPI v3 to 3.1.0

* ADDED: Support for xsd:dateTimeStamp datatype

* FIXED: Name clashes between OWLAPIv2 and v3 in Pellet CLI

* ENHANCED: IncrementalClassifier to support checking entailment of 
            all axiom types in isEntailed() method
            
* ENHANCED: Lint validates now global restriction axioms in OWL DL,
            improper punning, and misuse of object and data 
            properties

* FIXED: Incomplete explanations when reasoner is running in 
         non-buffering mode

* FIXED: Incorrect number of results and not printing of duplicate 
         results in tabular output format in CLI
         
* FIXED: Incorrect results for domain queries when equivalent classes
         to the domain of the property existed
         
* FIXED: Problems with IncrementalClassifier and imported ontologies

* FIXED: Anonymous inverse properties not being detected by EL 
         expressivity checker

* ENHANCED: Printing explanations incrementally as they are generated       

* FIXED: Various other bugs; see the following link for a list of all 
         the bugs that have been fixed:
     
         http://clark-parsia.trac.cvsdude.com/pellet-devel/report/11

Pellet 2.2.1 (Aug 16, 2010)
---------------------------

* FIXED: Classification errors that were also triggered by property 
         domain queries
         
* ADDED: Ability to close Jena inference models without closing the
         underlying raw models         

* FIXED: Explanation retrieval bug through Jena that caused subsequent 
         modifications to be ignored         
         
* FIXED: Parsing errors for SPARQL queries that contain complex class
         expressions         

* FIXED: Pellet CLI command entail is restored
         
* ENHANCED: Explanation feature to handle user-defined dataypes

* ENHANCED: Datatype reasoner to support built-in datatype derived from
            string and better handling for floats and doubles

* DEPRECATED: DIG server which is based on an obsolete protocol that
              does not have full OWL support  
              
* FIXED: Various other bugs; see the following link for a list of all 
         the bugs that have been fixed:
     
         http://clark-parsia.trac.cvsdude.com/pellet-devel/report/11


Pellet 2.2 (July 5, 2010)
-------------------------

* ENHANCED: TBox reasoning performance especially in the presence of 
            inverse properties

* ENHANCED: Realization performance where classes have multiple super 
            classes

* ENHANCED: Pellet's ability to process ABox updates without reloading 
            the ABox
            
* ADDED: Support for incremental classification in command-line by
         persisting the classification results (via --persist option)            

* ENHANCED: Support for annotation queries

* UPDATED: Jena libraries to 2.6.3

* FIXED: Various bugs; see the 2.2 release report in Trac for a
         complete listing:

         http://clark-parsia.trac.cvsdude.com/pellet-devel/report/11


Pellet 2.1 (April 1, 2010)
--------------------------

* ADDED: Support for Manchester Syntax in SPARQL basic graph
         patterns: i.e., syntactic sugar for querying OWL
         ontologies with SPARQL. Any legal Manchester 
         syntax form can be used in subject or object position. 
         
         See *.terp in the examples/data directory.

         This feature is experimental: please report bugs and send
         feature requests to pellet-users@lists.clarkparsia.com.

* ADDED: Disk persistence of all reasoning results via OWLAPI 3.0
         when using Pellet's incremental classifier.

* ENHANCED: New datatype reasoner implementation that is more
            complete, more performant, and more correct compared
            to earlier versions of Pellet's datatype reasoner.

* ENHANCED: Substantially complete OWL2 support, with the sole
            exception that Pellet 2.1 does not support annotation
            axioms through Jena interface. Please report missing 
            OWL2 features as bugs to pellet-users mailing list.

* ENHANCED: Transition to OWLAPI 3.0 support complete; please report
            missing OWLAPI 3.0 support.

* DEPRECATED: Pellet support for OWLAPI 2.x is deprecated in 2.1 and
              will be completely removed in a future version.
            
* ENHANCED: New command-line subcommand, 'info', which reports for one
            or more OWL ontologies relevant properties, metadata, and
            other information, including OWL2 profile detection.

* FIXED: Lots of bugs; see the 2.1 release report in Trac for a
         complete listing:

         http://clark-parsia.trac.cvsdude.com/pellet-devel/report/11
            

Pellet 2.0.2 (Mar 1, 2010)
--------------------------

* UPDATED: Support the latest interfaces in OWLAPI 3.0.0

* FIXED: NullPointerException thrown with xsd:anyURI datatype

* FIXED: Turning off incremental consistency checking in the presence 
         of rules
     
* FIXED: Incomplete explanation when functional properties are used in 
         min cardinality restrictions

* FIXED: Slow preprocessing with large number of property chain axioms

* FIXED: Various other bugs
     
     See the following link for a list of all the bugs that have been
     fixed:
     
     http://clark-parsia.trac.cvsdude.com/pellet-devel/report/11
     
Pellet 2.0.1 (Jan 11, 2010)
---------------------------

* FIXED: Various issues related to handling of top and bottom properties 
     
* FIXED: Handling reification and other built-in RDF properties in SPARQL 
         queries

* FIXED: OWLAPI v3 dependence in OWLAPI v2 reasoner

* FIXED: Completeness related to disjoint property queries 

* ENHANCED: Verbose mode in CLI improved to provide more information

* FIXED: Various other bugs
     
     See the following link for a list of all the bugs that have been
     fixed:
     
     http://clark-parsia.trac.cvsdude.com/pellet-devel/report/11
     
Pellet 2.0.0 (Nov 16, 2009)
---------------------------

* ADDED: Initial support for top and bottom properties

* FIXED: Classification results may be incorrect in the presence of 
         synonyms

* FIXED: Explanations involving property chains trigger exceptions when 
         retrieved through Jena interface

* FIXED: Settings from configuration file ignored

* FIXED: Large number of sameAs inferences cause StackOverflowError

* FIXED: Incomplete reasoning results when user-defined datatype 
         interact with cardinality restrictions

* FIXED: Incomplete reasoning results when sameAs assertions interact 
         with hasValue restrictions

* ENHANCED: Support for disjoint properties

* FIXED: not(hasValue(p,a)) instance retrieval broken when used with
         disjoint properties

* ADDED: Initial support for OWLAPI v3

* ENHANCED: CLI argument parsing, error reporting, additional 

* FIXED: Nested user-defined datatypes causes ClassCastException

* FIXED: Pellet DIG fails to start due to missing library

* FIXED: ConcurrentModificationException in EL classifier

* FIXED: Handling Self concepts in disjoint axioms in EL ontologies
 
* FIXED: Explanation of data property domain axiom fails

* UPDATED: Jena libraries to 2.6.2

* ADDED: Support for domain and range axioms in SPARQL queries

* FIXED: Problem with sameAs atoms in SPARQL queries

* ADDED: Support for nested class expressions in SPARQL queries

* ADDED: Support for SWRL builtins (substring & tokenize) and optional
         precision parameter for the roundHalfToEven builtin
         
* FIXED: Various bugs
     
     See the following link for a list of all the bugs that have been
     fixed:
     
     http://clark-parsia.trac.cvsdude.com/pellet-devel/report/11
     
Pellet 2.0-rc7 (Jun 11, 2009)
-----------------------------

* FIXED: Support for queries with annotations 

* FIXED: User-defined datatype handling in negation normal form

* ADDED: KnowledgeBase.getUnsatisfiableClasses function 

* ENHANCED: Handling OWL 2 vocabulary in pellet lint

* ADDED: Support for explaining property assertions in CLI

* ADDED: Explanation support through Jena interface

* UPDATED: Jena libraries to 2.6

* FIXED: Various bugs
     
     See the following link for a list of all the bugs that have been
     fixed:
     
     http://clark-parsia.trac.cvsdude.com/pellet-devel/report/11
     
Pellet 2.0-rc6 (Apr 30, 2009)
-----------------------------

* ADDED: Support for rules and user-defined datatypes in explanations

* UPDATED: OWL 2 vocabulary for user-defined datatypes, qualified 
           cardinality restrictions, self restrictions, property chains
           
* FIXED: Instance retrieval query results after updates

* FIXED: Subsumption queries for datatype properties

* FIXED: Classification errors in the presence of hasValue restrictions

* FIXED: Various other bugs
     
     See the following link for a list of all the bugs that have been
     fixed:
     
     http://clark-parsia.trac.cvsdude.com/pellet-devel/report/11
     
Pellet 2.0-rc5 (Mar 3, 2009)
----------------------------

* FIXED: Caching inconsistent results

* FIXED: Handling literal constants in SPARQL queries

* FIXED: Problems in the EL classifier

* ADDED: Support for qualified cardinality restrictions in SPARQL queries

* UPDATED: Jena libraries to 2.5.7

* ADDED: Pellint documentation to the distribution

* UPDATED: RDF vocabulary for OWL 2 Negative Property Assertions

* FIXED: Various other bugs
     
     See the following link for a list of all the bugs that have been
     fixed:
     
     http://clark-parsia.trac.cvsdude.com/pellet-devel/report/11
     
Pellet 2.0-rc4 (Jan 5, 2009)
----------------------------

* ADDED: Support for SWRL built-ins for URIs

* FIXED: Missing inferences with self restrictions

* FIXED: Imports handling in Jena loader in CLI applications

* FIXED: Returning direct super classes through Jena interface

* FIXED: Handling transitive properties inside SWRL rules

* FIXED: Various other bugs
     
     See the following link for a list of all the bugs that have been
     fixed:
     
     http://clark-parsia.trac.cvsdude.com/pellet-devel/report/11

Pellet 2.0-rc3 (Nov 12, 2008)
-----------------------------

* FIXED: NPE thown for jena loader in CLI applications

* ADDED: Support for swrlb:booleanNot

* ENHANCED: Query engine selection based on input query

* FIXED: Various other bugs
     
     See the following link for a list of all the bugs that have been
     fixed:
     
     http://clark-parsia.trac.cvsdude.com/pellet-devel/report/11
     
Pellet 2.0-rc2 (Nov 10, 2008)
-----------------------------

* FIXED: Problems in Jena interface

* FIXED: Handling class expressions in SPARQL queries

* ENHANCED: CLI argument parsing and error handling

* ENHANCED: SWRL optimizations
     
* FIXED: Various other bugs
     
     See the following link for a list of all the bugs that have been
     fixed:
     
     http://clark-parsia.trac.cvsdude.com/pellet-devel/report/11


Pellet 2.0-rc1 (Oct 27, 2008)
-----------------------------

* MODIFIED: Licensing terms changed

     Pellet is now available under dual licensing whereby use of Pellet 
     in projects that are licensed so as to be compatible with AGPL 
     Version 3 may use Pellet under the terms of that license. However, 
     if AGPL Version 3.0 terms are incompatible with your use of 
     Pellet, compatible or alternative license terms are available from          
     Clark & Parsia LLC. See LICENSE.txt in the distribution for more
     details on licensing conditions.

* ADDED: OWL2 support

     OWL 1.1 support in Pellet has now been updated to support OWL2 as
     described in the latest W3C working draft [1]. Reasoning support
     for the new OWL2 constructs has been improved and more robustly
     tested.
         
     [1] http://www.w3.org/TR/2008/WD-owl2-syntax-20081008/
 
* ADDED: Optimized OWL2-EL classifier

     A classifier specifically optimized for the OWL2-EL profile [2] 
     has been added. Pellet will automatically detect if an ontology
     fits into OWL2-EL expressivity and use the optimized classifier.
     The OWL2-EL classifier provide both better speed and improved
     memory usage for the classification task. It has been tested to
     classify ontologies with half a billion classes on a commodity
     laptop.  
     
     [2] http://www.w3.org/TR/2008/WD-owl2-profiles-20081008/#OWL_2_EL

* ADDED: Module extractor

     An ontology module extractor has been added. Given a set of terms
     from an input ontology, module extractor will extract a subset of 
     the ontology that is relevant for those terms. Locality-based 
     modularity notion is used to ensure the logical completeness of
     the extracted module. The extracted module from a large ontology
     will typically be much smaller making it easier to understand
     (for humans) and process (for tools).  

* ADDED: Incremental classifier

     A new classifier implementation that can update classification
     results upon ontology changes has been added. Incremental 
     classifier uses Pellet to compute the initial class hierarchy but
     when the ontology is updated (through addition or removal of 
     axioms) only relevant parts are recomputed. Relevant parts of the
     class hierarchy are found using the modules automatically 
     extracted.

* ADDED: SPARQL-DL support

     A new query engine that can answer SPARQL-DL queries has been 
     added. This engine can answer mixed ABox/TBox queries and 
     supports special query predicates, e.g. a special predicate to
     retrieve direct subclasses. SPARQL-DL engine is also integrated
     into the Jena ARQ engine such that ARQ handles the SPARQL algebra
     for complex constructs like OPTIONAL, UNION, FILTEE and SPARQL-DL
     engine answers Basic Graph Patterns (BGP). This coupling provides
     the most efficient query evaluation strategy.

* ENHANCED: SWRL support

     Reasoning performance for DL-safe SWRL rules have been improved 
     significantly. Rule support in Pellet now covers all the built-in
     functions from the SWRL specification [3] with the exception of
     rdf:List related functions. 

     [3] http://www.w3.org/Submission/SWRL/#8
     
* ENHANCED: Explanation generation

     The explanation generation functionality has been improved to
     retrieve multiple explanations for an inference. The support has
     been extended to cover all of the OWL2 vocabulary. There are new
     convenience classes that makes it easy to compute explanations
     along with pretty printers for generated explanations. 

* ADDED: Pellint integration

     Pellint [4], the ontology lint tool, is integrated to the Pellet 
     distribution and can be run directly from the Pellet command line
     interface. Pellint provides lint functionality both at the RDF 
     level, e.g. reporting untyped RDF resources, and OWL level, e.g.
     reporting suspicious OWL axioms. Pellint detects modeling styles
     in OWL ontologies that degrades the reasoner performance. 
     
     [4] http://pellet.owldl.com/pellint

* ENHANCED: Fine-grained inference extraction

     Pellet now provides a highly customizable inference extractor 
     that can be used to export inferences from the reasoner quickly.
     Extractor can be configured to select what kind of inferences, 
     e.g. subclass inferences vs. disjoint class inferences, should be
     extracted giving users more control over the extraction process.

* ENHANCED: Command line interface (CLI)

	 Pellet CLI has been completely redesigned to provide easy access
	 to all the existing and new features of Pellet. There is one 
	 uniform GNU-style interface that can be used for consistency
	 checking, classification, realization, querying, entailment 
	 checking, inference extraction, explanation, and extraction of
	 modules.     
	
* ADDED: Compute transitivity hierarchy

     A new class is introduced to display hierarchies defined in an
     ontology. In addition to the standard subclass hierarchy many
     ontologies define additional hierarchies, partinomy hierarchy
     being the most common one. The hierarchies are defined via a
     transitive property and can be at the class level, e.g. Gene
     ontology uses someValuesFrom restrictions in class descriptions, 
     or at the instance level, e.g. SKOS ontologies use properties 
     like 'broader' and 'narrower' in property assertions. Pellet now
     provides support to compute these hierarchies both through API
     calls and command line interface.   
     
* ENHANCED: Reasoning performance

     Consistency checking, the main reasoning service used by all the
     other reasoning services, has been improved to be more efficient.
     The improvements are especially significant for ontologies with
     a large number of instances. For example, consistency checking 
     time for LUBM dataset is reduced by an order of magnitude.
     
* ENHANCED: Memory usage

     The internal Pellet structures have been improved significantly
     to reduce the memory requirements. These changes improve the 
     memory usage for both ABox and TBox reasoning. For LUBM dataset
     which is ABox-heavy, the memory reduction was three-fold. For NCI
     Thesuarus which is TBox-heavy, the memory reduction is two-fold.

* ADDED: Annotation support

     Pellet now provides native support for storing and querying OWL 
     annotations. Even though annotations do not have semantic effect
     they are very commonly used in queries, e.g. retrieve the label
     for a class or an individual. Pellet SPARQL-DL engine can handle
     annotation properties directly reducing the need to fall-back to
     the Jena query engine.
     
* ENHANCED: Interrupting reasoning process with user-defined timeouts

     Pellet timer API and its internal use has been updated to allow
     users interrupt the reasoning process with user-defined timeouts.
     Users can define a timeout for basic reasoning services like
     consistency checking, classification, or realization and Pellet
     will stop the reasoning process when the amount of time specified 
     has elapsed.      
     
* REMOVED: Species validator

     OWL species validation functionality that was used to report the
     OWL species (Lite, DL, Full) has been removed. The species 
     validator was very much outdated and was about to become obsolete
     as the OWL2 specification becomes a W3C recommendation. OWL2 spec
     defines three "profiles" and discontinues the use original OWL 
     species definitions. We are planning to provide functionality to 
     detect and report OWL2 profiles in the future. The most commonly 
     used feature of the species validator was to find and fix untyped
     resources in RDF documents which is still provided in Pellet with 
     the 'lint' subcommand.

* FIXED: Various bugs
     
     See the following link for a list of all the bugs that have been
     fixed:
     
     http://clark-parsia.trac.cvsdude.com/pellet-devel/report/11


Pellet 1.5.2 (May 1, 2008)
--------------------------

FIXED: Explanation cannot be turned off

ENHANCED: Performance of getting all the instances of a concept 

FIXED: Incorrect results in the presence of transitivity and nominals

FIXED: Missing entailments when XSD date/time values are used in 
       hasValue restrictions

FIXED: Various bugs in Model.listStatements
 
FIXED: Listing direct sub properties always returns empty set

FIXED: RDF/XML-ABBREV writer cannot be used with Pellet

FIXED: Anonymous inverse properties are not supported through the Jena 
       interface

FIXED: Jena loader may incorrectly type properties with multiple type
       triples

FIXED: Reasoner.getDescendantProperties returns only direct 
       subproperties


Pellet 1.5.1 (Oct 30, 2007)
---------------------------
   
* ENHANCED: SWRL rule support improved to support datatype properties
            and some SWRL Built-In functions
     
     
* ENHANCED: Improvements to the Jena interface including an update to 
            Jena 2.5.4 and ensuring the completeness of the function
            Model.listStatements() 
     
* MODIFIED: Updated OWLAPI to 2.1.0 release
     
* FIXED: Core Pellet bug fixes. See the following link for a complete 
         list of the issues that have been resolved in this release:
     
         http://clark-parsia.trac.cvsdude.com/pellet-devel/report/11


Pellet 1.5.0 (Jul 20, 2007)
---------------------------

* MODIFIED: Jena libraries updated to Jena 2.5.3

* MODIFIED: OWLAPI has been updated to latest SVN snapshot

* ENHANCED: Support for incremental reasoning has been extended so it 
            is usable through not only OWLAPI interface but also the 
            Jena interface

* FIXED: Improvements for Pellet configuration (especially w.r.t. 
         query answering) and bug fixes that have been reported after 
         1.5-RC1. See the following link for a complete list of the 
         issues that have been resolved in this release:
     
         http://clark-parsia.trac.cvsdude.com/pellet-devel/report/11


Pellet 1.5-RC1 (Jun 6, 2007)
----------------------------

* MODIFIED: Source code to use Java generics

* ENHANCED: Memory management for large TBoxes by improved caching

* ENHANCED: Classification performance (including CD optimization)

* ENHANCED: Progress monitoring for classification

* ADDED: Axiom tracing for explanation generation

* ADDED: Incremental consistency checking after ABox additions

* MODIFIED: OWLAPI jar files to the snapshot from 2007-05-17

* FIXED: Simplification bug for negated nominals 

* FIXED: Subsumption of TOP causes exception during classification 	

* FIXED: NPE when cardinality restrictions used on rdf:types 

* FIXED: Anonmous inverse roles in queries

* FIXED: OWLAPI get[Data|Object]Properties returning incorrect results

* FIXED: PelletQueryExecution to respect ORDER BY

* FIXED: DL-safe rules bug for object properties

Pellet 1.4 (Mar 16, 2007)
-------------------------

* MODIFIED: Jena jar files to version 2.5.2

* MODIFIED: OWLAPI jar files to the snapshot from 2007-02-22

* ADDED: DL-safe rules parsing for Jena loader

* ENHANCED: Vocabulary for OWL 1.1 and Econn

* FIXED: Enumerated datatype problem

* FIXED: KnowledgeBase.getDomains to ensure consistency

* FIXED: ATermUtils.findPrimitives for qualified cardinality restrictions

Pellet 1.4-RC2 (Feb 05, 2007)
-----------------------------

* MODIFIED: Jena jar files to version 2.5.1

* DEPRECATED: Anything based on deprecated Jena RDQL package

* FIXED: Query simplification bug when KB is classified

* FIXED: Caching root nodes so nominal-based model merging
         succeeds

* FIXED: Inverse functional datatype properties

* FIXED: Iteration over the values of dataypes that excludes
         some values

* FIXED: Optimized double blocking for cheking r-successors

* ADDED: Ignore transitivity (or complex subproperty) axioms for
         non-simple properties (e.g. the ones used in cardinality
         restrictions)
         
* FIXED: Various bugs related to cardinality restrictions (due
         to dependecy set tracking)
         
* ENHANCED: Support for OWL 1.1 so ontologies not using those
            features will be minimally affected         

* MODIFIED: OWL 1.1 syntax to the latest specs

* ADDED: Support to parse multiple facets restrictions on DataRange

* FIXED: DIG parser for inverse functional and transitive properties

* FIXED: OWLAPI reasoner consistency() function

* FIXED: Error messages about valid ontology properties

* FIXED: NullPointerException in species vaidation for rdf:List structures

* ENHANCED: DFA generation for complex properties by caching

* ADDED: Test cases from Thorsten Liebig to the test suite

* FIXED: The issue about anti-symmetric properties

* FIXED: Dependency set info for all values rule

* FIXED: The typo in command line help for DL-dafe rules

* FIXED: Taxonomy builder bug that ignores trivially unsat concepts

* FIXED: KnowledgeBase.addSubClass that ignores nominals if nominal absorption 
         is turned off
         
* ADDED: More test cases for transitive sub properties

* FIXED: The pseudo-model merging problem related to functional props

* FIXED: The IllegalArgumentException with XSDDecimal

* FIXED: Call copyOnWrite for literal nominals

* ENHANCED: More warning messages during loading for invalid structures

Pellet 1.4-RC1 (Nov 07, 2006)
-----------------------------

* ADDED: Support for OWL 1.1 including qualified cardinality restrictions, complex 
         subproperty axioms (between a property and a property chain), local ref-
         lexivity restrictions; reflexive, irreflexive, symmetric, and anti-symmetric 
         properties; disjoint properties, and user-defined inline datatypes.
         
* ADDED: Query subsumption algorithm implemented in QueryEngine       
         
* ADDED: An option to do realization concept at a time rather than individual at a time

* MODIFIED: date-time related datatypes to use xsdlib for representation

* FIXED: Taxonomy.isSubNodeOf for equivalances

* FIXED: Various other bugs
