Change Log ========== 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