You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2011/12/03 20:58:40 UTC
svn commit: r1209992 [1/2] - in /incubator/jena/Jena2/JenaZip/trunk: BUILD
ReleaseNotes-ARQ.txt ReleaseNotes-Jena.txt assembly-jena-zip.xml dist.sh
Author: andy
Date: Sat Dec 3 19:58:39 2011
New Revision: 1209992
URL: http://svn.apache.org/viewvc?rev=1209992&view=rev
Log:
BUILD instructions\nRelease notes for Jena and for ARQ
Added:
incubator/jena/Jena2/JenaZip/trunk/BUILD
incubator/jena/Jena2/JenaZip/trunk/ReleaseNotes-ARQ.txt
incubator/jena/Jena2/JenaZip/trunk/ReleaseNotes-Jena.txt
Modified:
incubator/jena/Jena2/JenaZip/trunk/assembly-jena-zip.xml
incubator/jena/Jena2/JenaZip/trunk/dist.sh
Added: incubator/jena/Jena2/JenaZip/trunk/BUILD
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/JenaZip/trunk/BUILD?rev=1209992&view=auto
==============================================================================
--- incubator/jena/Jena2/JenaZip/trunk/BUILD (added)
+++ incubator/jena/Jena2/JenaZip/trunk/BUILD Sat Dec 3 19:58:39 2011
@@ -0,0 +1,74 @@
+Apache Jena
+===========
+
+This is how to build the Jena download from source.
+
+The Jena download contains the IRI, API and SPARQL modules as jar files,
+together with all the necssary dependencies. Put all the jars in lib/ on
+the java classpath.
+
+The build of the Jena download collects all the dependencies together. It
+assumes that dependences are already built so if you want to build from
+scratc, you need to build the dependencies first. This can be done from
+the Apache "source-release" artifacts or from subversion.
+
+== Modules
+
+JenaTop - the parent POM
+IRI - The IRI library
+jena - the main RDF and OWL APIs, and memory storage subsystem.
+ARQ - SPARQL query engine
+
+
+== Sources from subversion
+
+The Jena2 subversion area is rooted at:
+
+https://svn.apache.org/repos/asf/incubator/jena/Jena2/
+
+The modules are subdirectories of this area. Check out each one, and
+install it into you local maven repository:
+
+svn co https://svn.apache.org/repos/asf/incubator/jena/Jena2/JenaTop/trunk jena-top
+svn co https://svn.apache.org/repos/asf/incubator/jena/Jena2/IRI/trunk jena-iri
+svn co https://svn.apache.org/repos/asf/incubator/jena/Jena2/jena/trunk jena-core
+svn co https://svn.apache.org/repos/asf/incubator/jena/Jena2/ARQ/trunk jena-arq
+svn co https://svn.apache.org/repos/asf/incubator/jena/Jena2/JenaZip/trunk apache-jena
+
+
+== Source from the Apache release
+
+The current release is available at:
+
+http://www.apache.org/dist/incubator/jena/
+
+Older Apache releases ara available at:
+
+http://archive.apache.org/dist/incubator/jena/
+
+Download all the "source-release" artifacts and unpack these.
+
+
+== Build
+
+(if building from a specific set of source-release files, directory names
+will have version numbers in them).
+
+# Build modules.
+for module in jena-top* jena-iri* jena-core* jena-arq* apache-jena*
+do
+ cd $module
+ mvn clean install
+ cd ..
+ done
+
+# Build download.
+cd jena-zip*
+mvn clean package
+
+The download will be in jena-zip*/target/
+
+-------------------------------------------------------
+Please do hestiate in contacting the Jena developers:
+ jena-users@incubator.apache.org
+ jena-dev@incubator.apache.org
Added: incubator/jena/Jena2/JenaZip/trunk/ReleaseNotes-ARQ.txt
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/JenaZip/trunk/ReleaseNotes-ARQ.txt?rev=1209992&view=auto
==============================================================================
--- incubator/jena/Jena2/JenaZip/trunk/ReleaseNotes-ARQ.txt (added)
+++ incubator/jena/Jena2/JenaZip/trunk/ReleaseNotes-ARQ.txt Sat Dec 3 19:58:39 2011
@@ -0,0 +1,454 @@
+ChangeLog for ARQ
+=================
+
+==== ARQ 2.8.9
+** Java 6 is now required for running ARQ.
+
++ ARQ: Provides \-escapes for characters ~.-!$&'()*+,;=:/?#@% in local part of prefix names
++ ARQ: Allow %xx in the local part of prefix names
++ SPARQL 1.1 / RDF 1.1 : DATATYPE(literal-with-lang) is now rdf:langString, not an error.
++ DatasetFactory: perferred methods for an in-memory dataset are:
+ create() -- will automatically add in-memory named graphs
+ createFixed() -- needs explicitly added extra graph
++ BUG FIX: Mis-execution of GRAPH ?g { .. } where ?g used inside { .. } (JENA-154)
++ Bug fix: ResourceUtils.renameResource() no longer uses Iterator.remove() (JENA-76)
++ Bug fix: Query objects with aggregators cannot be reused (JENA-120)
++ REGEX now accepts xsd:string and literals with language tags in the first argument.
++ Add function STRBEFORE, STRAFTER and REPLACE for SPARQL 1.1
++ Add function UUID [ARQ language only]
++ Remove LARQ from ARQ. LARQ is now a separate Jena module.
++ Fix reuse of query objects (aggregation used shared state) (JENA-121)
++ Spill to disk update (enable with ARQ.spillToDiskThreshold) (JENA-45)
++ External sort (enable with ARQ.spillToDiskThreshold) (JENA-44)
++ Remove RDQL from ARQ (code in Archive/ in SVN -- will not be updated)
++ ResultSetUtils.union(ResultSet ... sets)
++ Add optimization for DISTINCT/ORDER BY/LIMIT N (JENA-108)
++ Add optimization for DISTINCT/ORDER BY (JENA-90)
++ Add optimization for ORDER BY/LIMIT N (JENA-89)
++ General upgrade of dependent systems (not Lucene - see LARQ module for use with Lucene 3)
++ Introduce "bindings IO", a subsystem for efficient reading and writing of result bindings.
++ Make CONCAT follow the SPARQL 1.1 spec properly.
++ Bug fix: ORDER BY and FILTERs in sub-selects didn't work if ordering by non-SELECT variables.
++ Bug fix: Equality of algebra operator (order) wasn't checkign all aspects of the op.
++ Bug fix: SUM and AVG over errors didn't generate an error as they should do.
++ Add TSVInput processor (JENA-69 / Laurent Pellegrino)
++ Added DatasetGraph.add(g,s,p,o) and .delete(g,s,p,o) (JENA-65)
++ Aggregates COUNT(?x) and COUNT(DISTINCT ?x) now skips errors in their expressions
+ rather than evaluating to an error (SPARQL 1.1 Query Last Call compliance).
+
+==== ARQ 2.8.8
+
++ Added QueryExecution.setTimeout that uses the abort mechanism below to stop queries after
+ a preset period of time.
+
++ Query cancellation: method for QueryExecution.abort() can now be called by any thread at any time.
+ The effect is to stop the query execution as soon as possible.
+ After calling .abort(), at some time. .hasNext() and .next() will throw an exception if called.
+ Exactly when this happens is not defined - it may be immediately.
+
++ "arq.update --dump" : Output is now N-quads.
+
++ riot command: Output now abbreviates bNode labels.
+
++ SPARQL 1.1: Behaviour change: aggregates where the accumulation cause an error now cause the
+ AVG of 1,"two", 3 is now an error, was "two" is skipped
+ (and most likely, the error causes unbound in the SELECT expression)
+
++ Bug fix: Handling of UNDEF in BINDINGS
+
++ RIOT: Better handling of file names with spaces in them for base URI.
+
++ Notice: A separate LARQ module is under development - this will use Lucene 3.x.y
+
++ Bug fix: RIOT: Cope with UTF-8 files with a BOM.
+
++ Add scope checking rules as required by SPARQL 1.1
+ Illegal in SPARQL 1.1:
+ Reuse of variables in assignments (i.e. "AS ?x" and ?x potentially bound)
+ SELECT * {} GROUP BY (reamins legal in ARQ language)
+
++ Bug fix: FILTERs did not always get moved to the end of groups properly
+ (sometimes only to end of BGPs).
+ This effects some FILTER the LET combinations using the same variable.
+
+==== ARQ 2.8.7
+
+SPARQL 1.1 Function library:
+ + Added MD5, SHA1, SHA224, SHA256 SHA384, SHA512 functions for SPARQL 1.1
+ + Added YEAR, MONTH, DAY, HOURS, MINUTES, SECONDS to SPARQL 1.1
+ TIMEZONE awaiting WG discussions.
+ + Added NOW() to SPARQL 1.1 - filter function like afn:now().
+
+==== ARQ 2.8.6
+
+** Update is now two languages:
+ strict SPARQL 1.1 Update (the default)
+ enhanced language (ARQ query extensions, compatibility extensions for previous update language)
+ Set Syntx.syntaxARQ_Update to access the extensions.
+
++ Complete implementation of SPARQL 1.1 Query and Update (as per current draft)
+ Default query and updates languages are now SPARQL 1.1
+
++ Syntax extensions for W3C submission "SPARQL Update"
+ http://seaborne.blogspot.com/2010/08/migrating-from-sparql-update-submission.html
+
++ RIOT commands (ntrig, nquads, turtle, ntriples, infer) now in package 'riotcmd'
+
++ Expand update API to support multiple languages
+ See src-examples/arq.update.* for examples of API.
+
++ UpdateException now used for errors during update execution (potentially visible change)
+
++ Bug fix: compound expressions involving aggregates in SELECT clause
+
++ Remove use of code from org.json to clarify legal position.
+
++ Property path evaluation now aligns with SPARQL 1.1
+ cardinality of results for arbitary length paths may change.
+
++ Bug fix: N-Triples, and N-Quads now expect ASCII input as per specs.
+
++ Bug fix: Property functions in FILTER NOT EXISTS
+
+==== ARQ 2.8.5
+
++ RIOT: New parsers covering N-triples, N-Quads, Turtle and TriG
+ URI and literal checking in Trutle amd TriG.
+ New command line tools:
+ arq.riot (parse based on file ext), arq.ntriple, arq.nquads, arq.turtle, arq.trig
+ Parse files to N-Triples/N-Quads.
+ By default, checking turned on for N-triples and N_quads when useNd at command line.
+
++ Import all of atlas and riot subsystems from TDB
+ These will become submodules of ARQ sometime.
+ Atlas contains all non-RDF related library code.
+
++ SPARQL 1.1 status:
+ SPARQL 1.1 Query: implemented except for corner cases of property paths
+ Use Syntax.syntaxSPARQL_11
+ SPARQL 1.1 Update: Only W3C submission supported for execution.
+ Someparsing of WG design for SPARQL 1.1. Update but (at time or release) language not agreed.
+
++ Bug fixes:
+ Parsing of UNION in non-SPARQL 1.0 queries.
+ False optimization of GRAPH when mixed with extra {} and FILTERs.
+
+==== ARQ 2.8.4
+
++ Internal reorganisation of graph-level DatasetGraph (no chnages to the application API)
+ There is now hanlding of quads,
+ The difference bewteen DatasetGraph and DataSourceGraph is removed.
+ New classes to help with DatasetGraphs which are collections of graphs and
+ ones that are colelctions of quads and triples.
+ This does not affect Dataset or DataSource, the API interfaces.
++ Add BNODE() function to generate fresh bnodes
+
+==== ARQ 2.8.3
+
++ Added commands arq.larq and arq.larqbuilder to query and build Lucense indexes for ARQ.
++ Added IN and NOT IN operators
++ Added IF and COALESCE operators
++ Add built-in function STRLANG(string, string) to make a literal with a language tag.
++ Add built-in function STRDT(string, iri) to make a literal with datatype
++ Add built-in function IRI(string) to make an IRI.
++ Add value support for xsd:gYear/gYearMonth/gMonth/gMonthDay/gDay
++ Results output in CSV and TSV.
++ Add "negative property classed" (experimental)
+ !rdf:type matches anything except rdf:type
+ !(rdf:type|rdfs:label) matches some thing that isn't rdf:type or rdfs:label
++ Bug fix: some multiply nested OPTIONALs could result in only naive, unoptimized execution.
++ Bug fix: SERVICE body for complex query patterns.
++ Bug fix: XML literals in SPARQL XML Results had the end of lines mangled.
+
+==== ARQ 2.8.2
+
++ SPARQL v1.1 as an defined language and parser, separate from ARQ
++ Results output in CSV
++ Optimization of disjunction FILTERs
+ with care to get same effects if value-based
+ URIs are always safe to optimize.
++ Bug fix in filter placement (in code used by TDB only)
++ Bug fix in filter equality transformation if involving unused an variable.
+
+==== ARQ 2.8.1
+
++ Bug fixes
+ + substitution in NOT EXISTS
+ + substitution in assignment
+ + constant folding and logical special forms
+ + bad lock allocation (only occurs under very high load)
+
++ Speed up processing of nested optionals. Greatly speeds up BSBM with TDB.
+
++ Some JMX management exposed: Object names start "com.hp.hpl.jena.sparql".
+ Details include: system and version information, query execution count,
+ last query and the time execution started.
+
+==== ARQ 2.8.0
+
++ Build is now done by maven
+** JAR changes: the ARQ jars are now called "arq.jar" and "arq-tests.jar".
+ Only "arq.jar is needed at runtime unless running ARQ test code.
+** There is only one maven artifact "arq". "arq-extra" is no more.
+ See README for deatils of files produced.
+
++ Negation-as-failure: NOT EXISTS {pattern}
+ see http://jena.sf.net/ARQ/negation.html for details.
+
++ Bug fix: Reverse paths of length 3 or more were not being parsed correctly.
+
++ Upgrade to stax 1.0.1 and wstx-asl-3.2.9
+
++ Remove json.jar (jena compiled code from org.json). Replace with source code, renamed, in ARQ itself.
+ package com.hp.hpl.jena.sparql.lib.org.json;
+ Cleaned up for Java generics.
+
+==== ARQ 2.7.0
+
++ New build system.
+
++ Clearing up.
+ junit used is now v4.5
+ internal logging API is SLF4J (Jena uses SLF4J as of v 2.6.0 as well)
+ Jars needed: slf4j-api-1.5.6.jar and (for log4j) slf4j-log4j12-1.5.6.jar
+
++ Optimizer framework rewritten (inc support for hooks used by TDB).
+ New general purpose StateGenerator and memory-graphs statistics
+
++ Fix parsing of very large INSERT DATA requests (stack could overflow).
+
++ The IndexBuilder constructors taking a directory name as a string would
+ clear the Lucene index. Changed so they do not do so - and behave like
+ the other constructors which reuse an existing index.
+
++ Uses the Java5 version of Jena2.
+
++ Property function afp:versionARQ does not now split version numbers into major and minor parts
+ ARQ has a 3-part version number now.
+
+==== ARQ 2.6.0
+
++ Added .close() to Dataset and GraphStore for those implementations that
+ need to make changes permanent or release system resources.
+
++ Clean internal extensions points for TDB
+
++ Put misc support code in for TDB
+
++ Fix bug in SPARQL grammar (!) : expressions like "1+2*3" did not parse.
+ This is a fix to the grammar as published by the working group.
+ It does not invalidate or chnage any query that works - it makes some
+ illegal syntax work that should work.
+
+==== ARQ 2.5
+
++ Redesign of quad support.
+ AlgebraGeneratorQuad retired
+ Use Algebra.toQuadForm(Op) to turn an algebra expression into quads.
+
++ fn:string-join was misnamed - was actually renamed as fn:concat
+ And now takes arbitrary number of arguments
+
++ Add afn:strjoin(str, string...)
+
++ Bug fix: path parsing when "a" (for rdf:type)
+ is used in a property list (using ;)
+
++ Bug fix: LET expressions did not eliminate solutions when
+ assigned a new, different value.
+
++ Internal renaming to make the class names better reflect their role
+ particularly not using the term "compile" for things now considered
+ to happen during query execution.
+
++ Internal utilities updated for TDB
+
++ Signal start/end of updates using the graph-level events mechanism.
+
+==== ARQ 2.4
+
++ Change to interface for query compilation : Algebra.compile and Algebra.optimize
+
++ Property paths added. See documentation.
+
++ Simplify the interface between ARQ and data sources.
+ StageGenerator example updated.
+
+==== ARQ 2.3
+
++ HAVING / ORDER BY variable, where variable is SELECT as an aggregate or computed value now works.
+ (current restriction: can't have the expression directly in the ORDER BY - need to project the variable)
+
++ Upgrade to Lucene 2.3.1
+
++ Change return type of ResultFactor.copyResults to ResultSetRewinable (a sub interface of ResultSet).
+
++ Allow inital bindings for Updates (ignored unless a Modify operation)
+
++ Added SUM(?x) aggregate
+
++ Added { SELECT } (nested SELECT) and LET (assignment) to ARQ extended SPARQL.
+
++ Added optimization rewrite of algebra expressions for FILTER(?x = :x) and FILTER(sameTerm(?x, :x))
+ so that the required term is substituted into the pattern before execution.
+ Cautiously applied to basic graph patterns and quad patterns.
+
++ Bug fix: ARQ 2.2 broke property functions in many nested structures.
+
++ src-examples: example of SPARQL/Update
+
++ Fix bug: OpUnion flattening was not happening (Main query engine, OpCompiler)
+
++ Fix bug: HttQueryEngine(in HttpQuery) generated bad POST requests with a trailing &.
+
++ New command arq.load, which loads files into graphs. Special case of arq.update
+
+==== ARQ 2.2
+
++ Added command line tool, arq.update, for applying SPARQL/Update requests
+ to a graph store or dataset described by an assembler file.
+
++ LARQ:
+ Remove restriction that indexes have to be closed for writing before reading
+ Becare: in Lucene, reader indexes (like LARQIndexes) see the index as at the point
+ in time when the index was created. Must get a new reader to see later updates.
+
++ QueryEngineHTTP
+ + Can be created via QueryExecutionFactory
+ + Operations for adding HTTP parameters and also for basic authentication of HTTP.
+
++ Added ParserRegistry (courtesy of Olaf Hartig)
+
++ Reworked property functions so they formally in the algebra.
+
++ Jar change: commons-logging-1.1.1.jar
+
++ Bug fix: text output of result sets sometimes gave full bNode label - revert to
+ old design where a short label is used always.
+
++ Bug fix: handling of empty patterns and COUNT could give no count,
+ instead of a count of zero.
+
++ Use base URI for realtive URI printing (i.e <foobar>)
+
++ Track DAWG:
+ Effect of OPTIONAL {{ ... FILTER }} (must be 2 or more {{}}) changes.
+ Inner {} now protects the FILTER from becoming part of the LeftJoin.
+
++ Upgrade lucene-core-2.0.0.jar to lucene-2.2.0.jar
+ Lucene change means that users can't mix ARQ 2.1, and before,
+ with Lucene 2.1.0 or later.
+
+==== ARQ 2.1
+
++ (experimental for this release - permanent in next)
+ GROUP BY, HAVING
+ Aggregates: count(*), count(?x), count(distinct *), count(distinct ?x)
+
++ (experimental for this release - permanent in next)
+ Expressions in SELECT clause
+ Expression in brackets, optionally named with "AS ?var"
+ Adding an explict namne is strongly encouraged especially if you use
+ the SPARQL results format because internal variables variable names
+ are not portable.
+ SELECT (?x+?y AS ?z) ?y ?x
+ SELECT ?x ?y (?x+?y AS ?sum) # Print a table of sums
+ OpProject can have additional expressions that get added into the
+ table from 'project'
+
++ removed old-style (and out-of-date) writers for internal forms: prefix,
+ plain and XML forms of a SPARQL query. The XML form was incomplete
+ anyway. (This does not affect algebra output which is what replaces
+ these syntax-based forms).
+
++ Added examples of using Lisp (SISC - A Java-based scheme interpreter).
+ See the directory Lisp/.
+
++ NodeVar renamed ExprVar (more consistent naming)
+ Deprecated tombstones left for next release
+
+==== ARQ 2.1 beta
+
++ Cost-based optimizer for basic graph patterns on in-memory graphs.
+ ** Uses the version of jena shipped with this release, can't use an earlier one.
+
++ Convert algebra expressions back into a SPARQL query (see OpToSyntax).
+
++ Old "NodeToLabelMap" => "NodeIsomorphismMap"
+ Affects Element and Op ".equalTo" operation signature.
+
++ Added extension : a graph pattern SERVICE <serviceEndPoint> { pattern }
+ ARQ syntax only.
+ New algebra operation: OpService
+
++ Added SSE to the main codebase : http://jena.hpl.hp.com/wiki/SSE
+
++ Internal changes: the core engines are now Graph/DatasetGraph/Algebra-centric
+ and there are classes to map betwen that and the Model/Dataset.
+ QueryEngine construction and extension need not know about
+ the upper layers now.
+
++ Algebra operator implment .hashCode() and .equals() based on structure/value equality
+
++ Legacy query engine1 removed.
+
++ Add new algebra operations
+ OpGroupAgg, OpNull
+
++ VarsMentionedVisitor removed - convert to an algebra expression and use OpVars.allVars instead.
+
+==== ARQ 2.0
+
+This version uses the SPARQL algebra directly,
+then produces an execution scheme that uses streaming
+execution where possible.
+
++ SPARQL changes
+ + Prefixed names can now start with a digit. ex:123 is now a legal prefix name.
+ + The working group has removed attributes "ordered" and "distinct" from the
+ XML Results format. These have been removed in this release. ARQ will read
+ old style XML files (and ignore the attributes).
+ JSON result format also updated.
+
++ Multiple query engines:
+ + Main query engine for optimization and efficient execution
+ + Reference engine for checking functionality
+ (implements the SPARQL evaluation semantics very simply for clarity and validation)
+ + Remote access engine for querying SPARQL endpoints over HTTP.
+ + Engine1, for exact ARQ1 semantics and enhancements
+ (deprecated for new applications (and will be removed sometime))
+ + RDQL engine
+ + See also SDB - an ARQ query engine that for RDF stored in SQL databases
+
++ Access and extension points:
+ + Filter functions
+ + Property functions
+ + The parsed syntax
+ + Generation of the SPARQL algebra expression
+ + Modification of SPARQL algebra expression before executin plan generation
+ + Custom algebra operations
+ + Basic graph pattern replacement or modification
+ for access to other data sources
+ + Modular query engine class hierarchy for reuse of machinary,
+ resulting in less extra coding for extensions.
+
+ + Internal changes
+ + Package reorganisation
+ Implemnentation in com.hp.hpl.jena.sparql
+ + Filter functions now take a Context, not an ExecutionContext.
+ + Deprecate "EXT" form from ARQ.
+ (Property functions are better)
+
+ + Experimental SPARQL/Update API
+ See http://jena.hpl.hp.com/~afs/SPARQL-Update.html
+
+Post ARQ-2.0-beta:
++ Added REDUCED as per DAWG decision 2007-03-20
++ OpDistinct and OpReduce no longer take a variable list
++ Removed ElementExtension/PlanExtension and extension package
+ The ARQ(beyond SPARQL feature) of "EXT" has been removed.
+ Element visitors may be affected.
++ Added an update API
++ LARQ
+ + added access to the match score
+ + added limits on score or number of results as part of Lucene search
Added: incubator/jena/Jena2/JenaZip/trunk/ReleaseNotes-Jena.txt
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/JenaZip/trunk/ReleaseNotes-Jena.txt?rev=1209992&view=auto
==============================================================================
--- incubator/jena/Jena2/JenaZip/trunk/ReleaseNotes-Jena.txt (added)
+++ incubator/jena/Jena2/JenaZip/trunk/ReleaseNotes-Jena.txt Sat Dec 3 19:58:39 2011
@@ -0,0 +1,1480 @@
+Release Notes
+=============
+
+==== Jena 2.6.5
+
+** Java 6 is now required for running Jena.
+** The deprecate RDB subsystem has been removed. Please use TDB or SDB.
+
+==== Jena 2.6.4
+
++ Maintenace release
+
+==== Jena 2.6.3
+
+GraphBase:
+ o Added limits to the number of triples thatr GraphBase.toString() will
+ serialise.
+
+Model/Resource API:
+ o Took advantage of covariant return types to allow Resource.inModel() and
+ Property.inModel() to have Resource resp. Property return types, allowing
+ casts of calls to inModel() to (mostly) be eliminated.
+
+ o As per request on mailing list, ModelGraphInterface now has a method
+ `Resource wrapAsResource(Node)` [name changed to fit better] which
+ wraps a node as a Resource and throws if the node is a Literal.
+
+ o As per request on mailing list, added Resource method
+ x.getPropertyResourceValue( Property p )
+ which answers some R such that x p R if any exists, otherwise null
+
+ o As per request on mailing list, there's now an OWL2 vocabulary class
+ with constants for the terms of OWL2. NOTE: there is no OWL2 ontology
+ support present or implied by this vocabulary class.
+
+ o getModel() has been pulled up from Resource to RDFNode. This means that
+ Literal now supports getModel() and inModel().
+
+ o RDFNode has .asLiteral() and .asResource() methods, which deliver
+ the Literal or Resource respectively if the RDF Node has that type,
+ and otherwise throw a *RequiredException.
+
+Misc:
+ o Patched AnonId using UID when running in environments like GAE
+ o Fixed problem with comparison on XSDDurations with fractional seconds
+
+Reasoners:
+ o added makeSkolem builtin
+ o fixed deadlock problem with hybrid rule systems
+ o changed interpretation of Functors so they are neither literals nor objects,
+ this allows validation of nested reasoners to cope with the introduction of
+ functors representing inferred individuals
+ o improved RETE initialization so that fewer triples are injected
+ into the rule network in cases such as the RDFS no-resource rules
+
+Ontology API:
+ o Fixed NPE bug when an ObjectProperty was not the inverseOf another property
+
+Schemagen:
+ o Internal refactoring, which should not affect the external behaviour but should
+ make it easier to extend the schemagen class
+ o Individuals in an included namespace now appear in the output, even if their
+ rdf:type is not included.
+
+
+==== Jena 2.6.2
+
++ Resource.addLiteral() now has an overload that takes a Literal object
+ and uses it as the statement object unaltered. (Previously such a Literal
+ would be treated as an Object and converted to a String literal, oops).
+ Similarly model.addLiteral() has a Literal overloading.
+
++ N3 pretty writer now write Turtle (no use of "=" for owl:sameAs)
+
++ Maven-style codebase layout.
+
++ Update to iri.jar (version 0.7).
+
++ Change the way URIs are split into namespace and
+ local part so as to not split %-encoded sequences.
+
+Reasoners:
+ o Fixed problems with pure forward rules generating functor values (fixed
+ looping behaviour, fixed selective filtering of functors).
+ o Generalized rule reasoner to permit triples in subject position at
+ Graph level. Returned InfGraph and deductions graphs are safe but
+ getRawGraph on deductions graph will return generalized graph.
+ o Fixed handling of unbound groups in regex.
+
+Core API:
+ o Fixed bug in comparison of dateTimes with fractional seconds and with
+ round-tripping from calendars
+
+ARQ: removed from Jena development
+ The following jars have been removed from the lib/ directory - they are only used by ARQ:
+ arq.jar, arq-extra.jar, lucene-core-2.3.1.jar, json.jar, stax-api-1.0.jar, wstx-asl-3.0.0.jar
+
+(Jena 2.6.1 is an internal tag, not a release)
+
+==== Jena 2.6.0
+
+** Codebase converted to Java 5
+
+ o Convert to use SLF4J for logging facade
+
+ o Exceptions AlreadyExistsException, DoesNotExistException and
+ RulesetNotFoundException no longer inherit via RDFRDBException
+
+Jar changes:
+ o Removed antlr-2.7.5.jar (no longer used)
+ o Removed concurrent.jar (no longer used)
+ o Removed xml-apis.jar (no longer used)
+ o Removed commons-logging-1.1.1.jar
+ o Add slf4j-api-1.5.6.jar, slf4j-log4j12.jar
+ o junit.jar upgraded to junit-4.5.jar
+
+Deprecation clearance.
+ Methods, classes and statics marked deprecated in previous releases have been largely removed.
+
+ObjectF deprecations
+ The interface ObjectF and the methods that use it have been deprecated.
+ They are hangovers from before the time RDF acquired typed literals;
+ nobody should be using them any more. They will be removed in the next
+ Jena release.
+
+Reasoners:
+ o Extended validity checking for OWL configurations to include
+ datatype range checking that can cope with user datatypes as done for RDFS.
+ Places the culprit Triple as the ValidityReport.Report extension value.
+ o Removed deprecated reasoners (RDFS1, RDFSExpt, OWLExpt) and associated support.
+ o Fixed RDFS-SIMPLE to include properties being reflexive
+ o Removed DIG 1.0 reasoner interface
+
+JenaModelSpec:
+ o This long-deprecated vocabulary (which supported the old ModelSpec system)
+ has been removed. ModelSpec was replaced by Assembler long ago.
+
+ o some Maker methods that implicitly relied on this vocabulary (but which
+ had not been deprecated) have also been removed. This affects GraphMaker,
+ SimpleGraphMaker, BaseGraphMaker, and ModelMakerImpl: the methods used
+ were getMakerClass, augmentDescription, addDescription, and
+ getDescription. These methods were only relevant to uses of the old
+ ModelSpec system, which was removed in previous releases.
+
+N3:
+ o N3 parser is now the Turtle parser.
+ The dialect of N3 that Jena supported (which is quite old) has some idioms that
+ are not legal Turtle although they are nowadays not correct N3 either.
+ o Turtle writer now speeded up when many namespaces in use.
+
+Ontology API:
+ o Removed support for no-longer-supported OWL syntax checker.
+ o Removed previously-deprecated namespace management methods from OntDocumentManager.
+ Namespaces should be managed via the PrefixMapping API.
+ o Unified code for checking individuals in OntResource.isIndividual() and
+ OntModel.listIndividuals(), and updated the check to account for some user-reported
+ edge cases.
+
+Datatypes:
+ o Added a getTypeByClass call to TypeMapper and registered additional primitive types
+ based on suggestion and patch supplied by Thorsten Moeller.
+
+==== Jena 2.5.7
+
+Database layer:
+ o Compatibility fixes for PostgreSQL 8.3 (no schema changes)
+ o Compatibility fixes for MS SQL Server 2008 (no schema changes)
+
+ReasonerFactoryAssembler
+ o Now takes note of ja:schema properties & binds such a schema
+ to the reasoners that the factory produces.
+
+Reasoners:
+ o Modified @include processing and Rule.rulesFromURL to support
+ FileManager redirects.
+ o Fixed problem withLPTopGoalIterator which caused one extra level
+ of lookahead in some circumstances.
+
+==== Jena 2.5.6
+
+Typed literals:
+ o Fixed bug in retrieval of decimal values with trailing fractional
+ zeros by canonicalizing values after parsing and improving
+ canonicalization.
+
+==== Jena 2.5.5
+
+Jar changes:
+ o lucene-core has been upgraded from lucene-core-2.0.0 to lucene-2.2.0.jar.
+ o logging-commons-1.1.jar upgraded to logging-commons-1.1.1.jar
+
+Deprecated Method Removal Frenzy
+ o A bunch of methods in Resource, Model, ModelCon, and Statement have
+ for a while now been marked as deprecated. These methods took literal
+ values for the object of a statement and used the old treat-it-as-a-string
+ approach rather than the newer typed-literal approach.
+
+ o These deprecated methods have been removed. However, to allow migrators
+ an easier life and to avoid requiring many many calls of
+ createTypedLiteral (which needs a model, not always conveniently to hand),
+ typed-literal versions of these methods have been added to the interfaces.
+
+ o Model has grown:
+
+ * addLiteral( Resource, Property, Various )
+ * listResourcesWithProperty( Property, Various )
+ * createLiteralStatement( Resource, Property, Various )
+ * listLiteralStatements( Resource, Property, Various )
+ * listResourcesWithProperty( Property, Various )
+
+ o Resource has grown:
+
+ * addLiteral( Property, Various )
+ * hasLiteral( Property, Various )
+
+ o Statement has grown:
+
+ * changeObject( Various )
+
+ where `Various` is one of float, double, long,boolean, char, short,
+ int, or object [short & int may be missing in some cases].
+
+ o As signalled in the Jena 2.5 release, the dedicated DAML API has
+ now been removed. Users who still process DAML+OIL ontologies should
+ switch to using the generic OntModel with the DAML profile.
+
+PrefixMapping loses deprecated usePrefix
+ o The deprecated PrefixMapping method `usePrefix` has been removed.
+ (Use `shortForm` instead.)
+
+ModelSpec
+ o ModelSpec, which has been deprecated for a while, has been removed,
+ along with ModelSpecImpl. OntModelSpec, which used to implement
+ ModelSpec (via OntModelSpecObsolete, also removed), doesn't any more.
+
+RDF/XML-ABBREV
+ o Aesthetic improvement changes most RDF/XML-ABBREV output.
+ The treatment of URI nodes and blank nodes has been made more uniform.
+ Please give feedback if for your data this is inappropriate.
+
+Schemagen
+ o Member variables (i.e. for classes, properties and individuals) are now
+ lexically sorted to create more stability in change-sets when generated
+ Java classes are placed under source code control.
+ o Now tries to guess the namespace of an ontology file in the absence of
+ specific hints (hints such as: an option, prefix binding for the empty
+ prefix, or an owl:Ontology or daml:Ontology resource). The algorithm
+ is to look for the most prevalent URI that is not owl:, rdf: etc.
+ o Added a new option, --includeSource, which causes schemagen to include
+ the source code of the input ontology into the generated Java object.
+
+Ontology API updates
+ o Added methods to Individual to allow testing and manipulation of the
+ classes to which an individual belongs.
+ o Added a method to OntProperty to list the Restrictions that mention
+ the property
+ o Clarified the contract of OntModel.listOntProperties, and added a new
+ method OntModel.listAllOntProperties that is more robust in the
+ absence of a reasoner, but potentially slower.
+ o Added a utility class of basic ontology manipulation tools,
+ com.hp.hpl.jena.ontology.OntTools. So far, this includes:
+ * compute the lowest common ancestor of two classes
+ * compute minimum path between two nodes
+ * compute the named roots of a class hierarchy
+
+Reasoners:
+ o Changed the equality contract of Rule objects to include the rule name.
+ o Extended OWLMicro to include support for hasValue to match documentation.
+ o Fixed problem with OntModel.getDeductionsModel not always triggering prepare.
+ o Fixed problem with reasoner configuration when using typed literals
+
+Change of Behaviour in getByte/Short/Int on typed literals
+ o The methods getByte(), getShort(), and getInt(), when applied to
+ typed literals whose value is out of range, delivered a truncated
+ value [as opposed to those methods on plain literals, which throw
+ an exception]. This was deemed to be an error, and those methods
+ will now throw IllegalArgumentExceptions.
+
+ o These methods may be deprecated & removed in later releases.
+
+Assemblers
+ o When the Assembler system (ie AssemblerGroup et al) load a class,
+ that class is loaded before any of the implementsWith of that
+ group are consulted. Thus the loaded class can update existing
+ groups inplementsWith tables.
+
+ o Because such an update need not be done to the global group
+ Assembler.general, the group loading the class must be
+ available, so using a static initialiser isn't sufficient.
+
+ o Instead, if the class has a (static) method called
+ `whenRequiredByAssembler` with an AssemblerGroup argument,
+ that method is called passing in the loading AssemblerGroup.
+
+ o Users are discouraged from using static initialisers which
+ update Assembler.general, since this will not work as
+ they might have expected when other assembler groups are
+ being used.
+
+ o OntModelSpecs have acquired an optional likeBuiltinSpec property
+ for defining the "base" on which an OntModelSpec can be built by
+ specifying other properties. In particular, this allows OntModelSpecs
+ /with no reasoning/ to be constructed, which was a mysterious absence
+ in earlier assemblers.
+
+Typed literals:
+ o Fixed bug in equality checking of instances of xsd:decimal,
+ and creation of xsd:decimal or xsd:integer instances from BigDecimal
+ or BigInteger instances
+
+Reasoners:
+ o Changed the equality contract of Rule objects to include the rule name.
+
+==== Jena 2.5.4
+
+Graph
+ o Graph has grown a new method, getStatisticsHandler
+ o null is an acceptable result
+ o Graphs that extend GraphBase have this defined for them
+ o It is intended for the ARQ optimiser optimising in-memory graphs
+
+Assemblers
+ o ContentAssembler now respects the fileManager property for external
+ content.
+ o withFullModel now does subclass closure (as it should have done)
+ o the code for findSpecificType is now better
+
+N3 & Turtle Writer
+ o Correct writing nested bnodes with no properties to make strict Turtle.
+ o No longer automatically add default namespace prefix.
+
+Reasoners
+ o Added rebindAll() to FBRuleInfGraph
+ o Extended OWLMini/full to include validation of maxCardinality(1) over individuals
+ o The (forward) deductions model is now preserved across rebind() operations
+ so that listeners on deductions models are safe
+ o added now(?x) builtin to return the current xsd:dateTime
+
+Misc
+ o Extended ResourceFactory.createTypedLiteral to handle Calendar objects
+
+==== Jena 2.5.3
+
+Statement.Util
+ o The interface Statement has grown a Util class containing
+ the three constants getSubject, getPredicate, and getObject,
+ which are Map1 objects with the obvious meanings.
+
+Assembler modification-and-fix
+ o There was a bug with the behaviour of OntModelSpec assemblers.
+ The "feature" that if a ja:OntModelSpec had no properties it
+ was treated as an OntModelSpec constant name did not work,
+ since the generalAssembler obligingly inferred properties for
+ it.
+
+ The behavior has changed (I hope for the better ...). Instead,
+ an OntModelSpec is built by modifying the properties of [a copy
+ of] a default spec, which is normally OWL_MEM_RDFS_INF. However,
+ if the root resource is ja:<SomeOntModelSpecConstantName>, then
+ that constant provides the default. This gives the intended
+ behaviour of "I specified no properties" and additionally
+ allows specs to be specified as tweaks-to-a-constant.
+
+ ContentAssemblers can now be constructed with default FileManager
+ arguments. External content is loaded using that FileManager.
+ The object of an externalContent statement can be a string
+ literal or a URI.
+
+ AssemblerGroups (which includes the instance Assembler.general)
+ now support a `copy` method which makes a new group initialised
+ with the same mapping.
+
+ ReasonerFactoryAssembler now respects JA:reasonerClass properties,
+ which specify the factory by giving its class name.
+
+ModelSpec and family REMOVED
+ o the long-obsolete and recently-deprecated ModelSpec has been removed,
+ along with its related tests, descendants, registry, and references.
+ OntModelSpec remains (but is no longer a ModelSpec), with the old
+ ModelSpec-oriented constructors deprecated and new Assembler statics
+ introduced.
+
+ OntModelSpec now extends OntModelSpecObsolete, which holds (almost)
+ all of the OntModelSpec's deprecated ModelSpec-oriented machinery.
+ OMSO will vanish after the next Jena release, when the remaining
+ ModelSpec code will evaporate.
+
+Deprecated XSD.NS in favour of XSD.getURI() which reports namespace with a
+ trailing # character.
+
+Reasoners:
+ o Extended rule syntax to accept URIs wrapped in <..> and file: uris
+
+Typed literals
+ o Fixed problem which prevented Calendars being used to instantiate
+ XSDDates rather than full XSDDateTimes
+
+IRI
+ o Fixed conformance problem with mailto:
+ o Rewrote relativize code, fixing a #frag bug.
+
+==== Jena 2.5.2
+
+RDQL support now in ARQ
+ o Removed old RDQL engine
+ Migrate to SPARQL, use ARQ instead and package com.hp.hpl.jena.query
+ http://jena.sf.net/ARQ/ -- ARQ also supports RDQL as a legacy language
+
+RDFException removed
+ o Removed RDFException. It was obsolete (and recently deprecated). It's
+ subclasses are now subclasses of JenaException.
+
+rdfcat tool
+ o The handling of command line arguments to rdfcat has changed slightly.
+ The input format (N3, RDF/XML, n-triple) argument, -n, -x and -t
+ respectively, now *only* affect the following argument. In previous
+ versions, the format was 'sticky' in that it persisted until another
+ input format argument was supplied. To set the default input format,
+ a new parameter -in has been added. See the rdfcat Javadoc for full
+ details.
+
+==== Jena 2.5.1
+
+Fix for test.bat not setting the classpath correctly.
+Fix for PropertyNotFoundException from OntResourceImpl.getPropertyValue, not a null return.
+
+==== Jena 2.5
+
+ModelJEB is no longer supported
+ o The ModelJEB BDB storage for graphs is no longer supported. (It
+ has been unofficially unsupported for quite a while without
+ complaint.) It's job -- cheap-and-cheerful persistent models -- has
+ been taken over by HSQLDB.
+
+RDFException has been deprecated
+ o It has been obsolete [because of the JenaException revisions] for
+ yonks. No-one should be using it (other than some internal uses
+ to be excised.) It will be removed post-2.5.
+
+Single-Element Unions [hence, OntModels]
+ o If a union graph contains a single element, both find and queryHandler
+ delegate directly to that single element. This means that find does
+ not need to remember all the found elements to discard duplicates,
+ and query gets to use any specialised code for that single graph
+ (rather than the general nested-finds that a full union needs).
+ In particular, if that single graph is a database graph, it will
+ be able to use fastpath.
+
+ A specific use of this is an OntModel with no imports in a database.
+ (If it has imports, then this optimisation cannot apply.)
+
+ In case something breaks as a result, the optimisation can be
+ disabled by setting the system property jena.union.optimise to
+ anything other than "yes".
+
+Reification with Inference Models
+ o A partial fix to a reported bug with reification on inference models.
+ Previously the built-in inference models had the reifier of their
+ base model, and hence deduced triples did not contribute to the
+ ReifiedStatement API calls, so deduced reified statements were
+ invisible. Now those inference models have their own reifier and
+ the reified statements of an inference model are the reified
+ statements of the base model and of the deductions model.
+
+ Reified statements inferred by backwards inference are /not/
+ reported. Reified statements formed from fragments spread between
+ the base model and the deductions model are /not/ reported.
+ Implementing those reifications would be expensive both for
+ the implementors and for any users.
+
+PropertyImpl.getOrdinal() [internal]
+ o now computed on demand rather than on construction. Also log-on-too-big
+ replaced by throw-an-exception. I doubt very very much that this will
+ ever matter. There was no TestPropertyImpl code, but there is now. It
+ should be extended to cover the "illegal URI detection", or perhaps we
+ should remove that since it's RDF/XML-specific and checked by the XML
+ output code anyway?
+
+Turtle support
+ o New Turtle parser (uses javacc, not antlr). Accessed for files with extension ".ttl"
+ and language names "TTL", "TURTLE", "Turtle"
+
+Database backends:
+ o Changed MS SQL Server driver to use NVARCHAR instead of VARCHAR,
+ to fix i18n support.
+ o Fixed i18n bug in Oracle backend and also switched to NVARCHAR.
+ o No requirement to compile Jena for Oracle use. The Oracle driver
+ now works in the standard Jena distribution.
+
+ModelFactory:
+ o added methods to construct models using Assembler system. Updated
+ ModelFactory howto to include them. Deprecated the ModelSpec
+ methods. Removed them from ModelFactory howto.
+
+ModelSpec:
+ o deprecated the ModelSpec class. Modified the ModelSpec docs to
+ say it's deprecated.
+
+Assembler:
+ o missing subclass declarations added to vocabulary. Bogus `domain`
+ replaced by correct `range`. FileManagerAssembler now by default
+ builds a FileManager with the standard locators. To test this,
+ made the existing standard locator classes have appropriate
+ .equals() and .hashCode() methods.
+
+ o ConnectionAssembler now records subject resource in
+ ConnectionDescription. ConnectionDescription falls over
+ usefully if the URL or type is null when it's opened.
+
+RDF/XML output:
+ o bug whereby a literal containing the sequence "]]>" generated illegal
+ XML (because the "]]>" went through unchanged, and is illegal except
+ as CDATA end) fixed by converting any ">" in element content into
+ ">".
+
+ o unencodable characters (any control character except \n, \t, \r, also
+ \uFFFF and \uFFFE) now throw exceptions. We may allow a new parameter
+ setting to switch this off later.
+
+ o the entity-conversion code has been rewritten using Java regex's to
+ avoid multiple conversions.
+
+ o the new Writer property "showDoctypeDeclaration" is used by the RDF/XML
+ writers to force inclusion of a !DOCTYPE header declaring as entities
+ each of the prefix-mappings of the model. Attributes that start with
+ the URIs of the mapping are written to use the entity invocation
+ instead.
+
+RDF/XML Input:
+ o When reading from a URL, content negotiation is now used
+ prefering: RDF/XML, then XML, over other content types.
+ o An over-eager and confusing warning was suppressed.
+ o Behaviour on very large files has been modified. For such files, checks
+ for illegal reuse of rdf:ID are not made after the first 10000
+ have been seen. A warning is issued about this change when
+ reading a large file.
+
+IRI:
+ Release synchronized with an IRI release (iri 0.3).
+ Minor bug fixes.
+
+Untyped literal operations deprecated (char, boolean, long, float, double, Object)
+ These operations do not work on typed literals. They converted their arguments
+ to plain strings and parsed strings to retrive values.
+ They are a ghost from pre-datatyping RDF.
+ ** The forms on RDFNode, String, String+lang, and XML literals remain.
+ ** Forms taking a typed literal or a lexical form and RDF datatype added (or already exist).
+ Model: .add, .listStatements, .listSubjectsWithProperty
+ Resource: .hasProperty, .addProperty
+
+JAR file changes:
+ Added: arq-extra.jar
+ Changed: wstx-asl-2.8.jar ==> wstx-asl-3.0.0.jar
+
+EnhNodes/UnsupportedPolymorhismException/QualifiedRestriction
+ o Any EnhNode now automatically canAs any type already on its
+ view ring if that view is still isValid. Previously it
+ required finding a relevant Personality and Implementation
+ and trying canWrap, which failed if the EnhNode had no EnhGraph,
+ eg a Resource allocated by ResourceFactory.
+
+ o This exposed problems with the QualifiedRestriction family of
+ classes, which didn't override isValid. They do now.
+
+ o Attempting to .as() an EnhNode with no EnhGraph no longer generates
+ a NullPointerException, instead giving an explicit
+ UnsupportedPolymorphism exception.
+
+ o Attempting to canAs an EnhNode with no existing implementation
+ of the required type and no EnhGraph returns false.
+
+OntResourceImpl
+ o some internal modifications to simplify/correct the code:
+
+ - corrected uses of .remove duing an iteration
+ - replaced some loops by existing single Graph methods
+ - some uses of getRequiredProperty + exception handling
+ (probably hangovers from the old days when getProperty
+ threw an exception) replaced by uses of getProperty and
+ tests for null
+
+ResourceImpl
+ o implementation of removeAll simplified in two ways: uses the
+ Model removeAll method, and no longer tests for an InfModel,
+ since the InfGraph implementation of removeAll works on the
+ base model anyway so no special-case code required. Also
+ avoids iffy (but currently safe) use of remove(StmtIterator)
+ where the StmtIterator is active over the same Model.
+
+Statement
+ o the method getWellFormed has been deprecated in favour of a new
+ method hasWellFormedXML(), paralleling Literal's newish
+ isWellFormedXML().
+
+Model
+ o Model has acquired a new method isClosed(), true iff the model has
+ been .close()d
+
+ o Graph ditto
+
+ o The built-in Graph and Model implementations have been modified to
+ implement this method.
+
+Typed literals
+ o Fixed bug in serialization of xsd:duration types.
+ o Added getBigSeconds to XSDDuration to avoid rounding errors in
+ use of getSeconds.
+
+OntModel
+ o the prefix mapping of an OntModel will not offer as a default URI
+ the default URI of any non-base component. This change is
+ implemented via Polyadic and hence any MultiUnion will have this
+ behaviour.
+
+ o added some extra checks so that importing a previously closed model
+ URI no longer causes ClosedException (SF bug 1474220)
+
+ o aliased method 'listImportedModels' to 'listSubModels' (the preferred
+ name), and introduced a Boolean flag to allow the listed sub-models to
+ be presented without their own import sub-models if required
+
+OntDocumentManager
+ o added a 'load hook' so that custom behaviours can be executed just
+ before and/or just after a URI is read in to the contents of an
+ OntModel or one of its sub-models
+
+BooleanClassDescription (UnionClass, IntersectionClass, etc)
+ o canAs() checking in the language profile is now more liberal
+ for OntClass resources, to prevent partially-formed class
+ descriptions triggering a ConversionException (SF bug 1608765)
+
+Legacy DAML API
+ o This entire API has been deprecated, and will be removed in Jena 2.6.
+ Ontology users are encouraged to work with OWL rather than DAML+OIL,
+ however the DAML+OIL profile for OntModel will continue to work
+ and be supported. The deprecated API is in the package:
+ com.hp.hpl.jena.ontology.daml
+ and was originally provided to ease transition of existing code
+ from Jena 1 to Jena 2. This transitional capability is no longer
+ supported.
+
+Reasoners
+ o Fixed a ConcurrentModificationException bug in TransitiveReasoner
+ o added simple string hanlding builtins regexp, strConcat, uriConcat
+ o fixed bug with arithmetic builtins which caused matching against an
+ already bound but incorrect solution to pass.
+ o fixed bug in backward reasoner which caused to try redundant solutions
+ to purely grounded calls. This may improve efficiency in some cases.
+ o fixed bug in duplicate removal in GenericRuleReasoner in pure backward mode
+ o fixed bug in parsing of typed literals to handle user defined prefixes
+ (thanks to Steve Cranefield for the fix)
+ o removed MAX_VARS limit from the old forward rule engine
+
+==== Jena 2.4
+
+JAR file changes:
+ Added: wstx-asl-2.8.jar
+ json.jar
+ iri.jar
+ Removed: stax-1.1.1-dev.jar
+ jakarta-oro-2.0.8.jar
+
+
+N3/Turtle:
+ o The syntax form 2.3 is now treated as an XSD decimal, not an XSD double
+ This is inline with chnages to N3 and Turtle specifications and
+ compatible with SPARQL.
+
+General
+ o Fixed various security violations which prevent use within Applets
+
+Model
+ o Model[Con] has acquired a new method, remove(S, P, O),
+ which removes the triple (S, P, O) from the model. None
+ of S, P, O can be null. O is of type RDFNode (no overloading
+ for primitive types etc).
+
+ExtendedIterator [hence NiceIterator and ResultSetIterator]
+ o added toSet() and toList(), which bundle the [remaining]
+ elements of the iterator up as a Set or List. Testing
+ these is a bit tricky; for the moment I've cheated by
+ testing specific instacnes of WrappedIterator, which is
+ built on NiceIterator, and NiceIterator is the base class
+ for /almost/ all the ExtendedIterators in the system,
+ except ResultSetIterator for which I added special code.
+
+Node
+ o added getBlankNodeLabel() as shortcut to the label string
+ of a blank node.
+
+AnonId
+ o added getLabelString(), which delivers the label of this
+ AnonId and (unlike toString()) is guaranteed to do
+ /only/ that.
+
+GraphMatcher
+ o following up on a performance issue, replaced the idiom
+ find().hasNext() for containment in GraphMatch with proper
+ use of contains(). After fixing a hashing problem in
+ LiteralLabel [see below], this worked and sped up the
+ checker /lots/ in some circumstances.
+
+NEW: Assembler specifications
+ o Assembler specifications replace the old ModelSpecs. They are
+ documented in doc/assembler/index.html and linked pages.
+
+JenaTestBase
+ o Added new test method assertInstanceOf to do instanceof testing
+ with a nice failure message; updated (some) test code to use it.
+
+FileGraph[Maker]
+ o The recent change to FileGraph which meant that closed FileGraph's
+ were removed from their owning Maker also meant that they were
+ not deleted when the Maker was closed. Amongst other things, this
+ left crud in the tmp directory when running the tests. Fixed: the
+ Maker remembers /all/ the FileGraphs, even the closed ones.
+
+ o Added a constructor that allows the file language to be explicitly
+ specified.
+
+LiteralLabel
+ o reported bug whereby a LiteralLabel can be constructed with the
+ value part null has been fixed [by putting in the missing 'this.']
+ o discovered a problem with literal labels whose values are arrays:
+ hashing doesn't work. Added delegation so that an RDFDataType
+ can provide a specialised hash function and arranged that the
+ relevant XSD datatypes used it.
+
+Database:
+ o Added a based MS SQL Server 2000/MSDE 2000 driver.
+ o Suppressed the "reifier must fix over-specification" messages from tests.
+
+Reasoners:
+ o Fixed bug in the forward rule engine which prevented firing of axiomatic
+ rules with non-empty bodies (i.e. no pattern match but calls to builtins).
+ o Changed contract for TransitiveReasoner so the same reasoner can be bound
+ to multiple datasets without interference between them
+ o Added error check for backward rules with multiple head clauses
+
+OntModelSpec:
+ o Changed contract for reasoners so that if a ReasonerFactory is supplied then
+ the generated reasoner instances won't be cached. This allows the same spec
+ to be reused multiple times with reasoners which can only be bound once.
+
+ o OntModelSpecs now export access to their to-be-deprecated ModelMakers via
+ the importModelGetters. This is part of the move to using Assemblers.
+
+OntDocumentManager
+ o When the OntDocumentManager asks for a model for an import, it goes via
+ the OntModelSpec's ModelGetter. Since the default ModelGetter just wraps
+ the spec's ModelMaker, this doesn't change the usual behaviour, but it
+ allows the OntModelSpec to use weak Getters.
+
+Jar changes:
+ o stax-1.1.1-dev.jar ==> stax-1.1.2-dev.jar
+ o new iri.jar required
+
+==== Jena 2.3
+
+ARQ - SPARQL for Jena
+ o ARQ added to Jena
+ See doc/ARQ/index.html for details
+
+JAR changes
+
+ jena.jar has been split into jena.jar and jenatest.jar (the test packages).
+
+ Replaced and upgraded with name changes:
+ antlr.jar => antlr-2.7.5.jar
+ jakarta-oro-2.0.5.jar => jakarta-oro-2.0.8.jar
+ log4j-1.2.7.jar => log4j-1.2.12.jar
+ icu4j.jar => icu4j_3_4.jar
+
+ Xerces jars updated to Xerces 2.7.1
+
+ New Jarfiles:
+ arq.jar
+ jenatest.jar
+ stax-1.1.1-dev.jar
+ stax-api-1.0.jar
+
+Constraint rewriter
+ o the .graph.query.Rewrite class recognises certain RDQL regex
+ idioms and rewrites them. The rewritten expressions contained
+ errors: (a) the case-insensitive classes stored the lowercased
+ version fo the test string, which broken the RDB generated code;
+ (b) against all his principles, kers had used toString() on
+ the results of expression evaluation, which broke the comparison
+ on typed or languaged literals. These Have Been Fixed.
+
+PrefixMappings
+ o new boolean method samePrefixMappingAs(PrefixMapping) compares mappings
+ for equality but has opportunity to avoid creating intermediate
+ maps.
+
+ o NOTE: cannot overload .equals() because Model::equals() is already
+ defined. Making Model implement PrefixMapping may have been a
+ mistake ...
+
+ARP
+ o Total rewrite of internals. Now approx four times faster.
+ User code will experience significantly less speed up,
+ depending on the percentage of runtime taken up with
+ parsing (as opposed to reading the data from the network
+ or disk, and adding the triples to a Model).
+
+ o The contract concerning behaviour after syntax errors has
+ changed. (See Javadoc for ARPOptions#setErrorMode, for details
+ of the new contract)
+
+ o Some changes in the error codes produced for ill-formed
+ input.
+
+ o The treatment of interrupts has changed. Instead of
+ throwing an InterruptedIOException, an error
+ is produced: ERR_INTERRUPTED, and reported through
+ the error handler as a fatal error. This normally
+ throws a ParseException.
+
+ o A few public classes that were in the old ARP package, but
+ labelled as not part of the API have been removed.
+
+ o DOM2Model public constructors have been deprecated, and
+ replaced with factories.
+
+ o SAX2Model and SAX2RDF factories methods have been deprecated and replaced.
+
+ o SAX2RDF, SAX2Model protected constructors have changed in a not
+ backwardly compatible fashion.
+
+ o NTriple command-line option documentation changed, in manner
+ that is theoretically not backwardly compatible.
+ -r is now default (in documentation,
+ follows previous implementation). -R option added to cancel -r.
+
+Node/Node_Literal/Literal
+
+ o Node has gained the method getIndexingValue(), which is the
+ value to use when indexing this Node for GraphMem lookup (and
+ other such things). Non-literal nodes return themselves. Literal
+ nodes return an appropriate value; the current implementation
+ defers to the getIndexingValue() method of the associated
+ LiteralLabel.
+
+ o Node has gained the method getLiteralValue(), which fails if
+ the node is not a Node_Literal and otherwise returns the
+ value of the associated literal. This method allows uses of
+ getLiteral().getValue() to be replaced, so that external
+ code need not know about getLiteral() as much.
+
+ o Literal::getWellFormed() has been deprecated; it is replaced
+ by Literal::isWellFormedXML(). There is a missing API method
+ eg isWellFormed() which would apply to any typed literal;
+ this will arrive in due course.
+
+ o Support for indexing of typed literals added. NodeToTripleMaps now
+ use an indexing object to represent the Node rather than the Node
+ itself. That object should implement the appropriate semantic equality:
+ index(x) == index(y) <=> sameValueAs(x, y)
+ If future datatyping extensions can't meet this contract it could be weakened to:
+ index(x) != index(y) => ! sameValueAs(x, y)
+ at the expense of post-processing find results with a sameValueAs test.
+ Currently the index objects used are:
+ plain literals, no lang and xsd:string literals -> the lexical form
+ plain literals, lang tag -> the Node
+ XMLLiterals -> the Node
+ known typed literals -> the java getValue() object
+ unknown typed literals -> a cons of the lexical value and datatype URI
+
+RDFNode/Resource/Literal
+
+ o The method Resource::getNode() has been deprecated in favour of
+ RDFNode::asNode().
+
+ o The method Resource::isAnon() has been moved up into RDFNode.
+
+ o The (pointless) method Literal::isLiteral() has been moved up
+ into RDFNode() (where it is pointful).
+
+ o RDFNode has acquired `boolean isURIResource()` and `boolean
+ isResource()`.
+
+ o This allows all three what-kind-of-node tests to be applied to
+ an RDFNode. Note that heavy use of these methods is a likely
+ design smell - visitWith() may be a better solution to the
+ classification problem.
+
+GraphMem/GraphTripleStore/NodeToTriplesMap
+
+ o Performance analysis suggests that a chunk of the time in find() was
+ taken up with redundant comparisions when filtering the intermediate
+ iterator with the triple pattern. [EG: the hashmap index field is
+ always right; the ANY nodes are never relevant.] So, after a go or
+ two around the houses, this was optimised to only test the non-wild
+ remaining fields, using the new Triple.Field operations plus the new
+ Filter operations.
+
+ o The default memory-based graph is now GraphMemFaster, which does
+ optimised query handling.
+
+Triple
+
+ o S/P/O fields made final (dunno why they weren't already).
+
+ o Added Field class, which gives three constants (getSubject, getObject,
+ Predicate) which have a getField(Triple) method to extract that field.
+ Fields also have filterOn() methods to create filters over nodes and
+ fields of triples; filtering over ANY nodes delivers any(), which
+ composes cheaply.
+
+Filters & Iterators
+
+ o Removed a performance infelicity in the default andThen implementation
+ (it kept calling the left-hand hasNext even when it had been exhausted).
+ Later replaced the implementation with one that keeps a list of
+ pending iterators and itself implements .andThen() by extending the
+ pending list.
+
+ o Added FilterDropiterator so that filterDrop doesn't need to create a
+ new negated Filter and suffer an extra indirection layer; added
+ filterKeepIterator for symmetry.
+
+ o Filter is now a class, not an interface, to make it easier to add
+ new operations to it (otherwise the API changes would be grossly
+ visible to all users).
+
+ o Filter has new methods: .and(Filter), producing a Filter that passes
+ only elements that pass both filters, and .filterKeep(Iterator),
+ which filters the iterator in the same way as ExtendedIterator's
+ filterKeep operation does.
+
+ o any() has fast implementations for these operations, allowing
+ it to be used as a fairly cheap identity element.
+
+ModelSpecs
+
+ o Fixed a bug: the loadFile property did not work on inference models.
+ The fix ensures that any descendant of ModelSpecImpl implements
+ createModel() using a method doCreateModel() and then loading the
+ specified files.
+
+Schemagen
+
+ o Schemagen now by default includes individuals whose class is in one
+ of the target namespaces for the document, even if the individual itself
+ is not. This behaviour can be turned off with option strictIndividuals.
+
+Typed literals:
+ o Fixed bug in unparsing of xsd:time values.
+
+ o Added normalization step so that creating a typed literal from
+ an XSDDateTime will use narrow types (e.g. xsd:date) when appropriate.
+
+ o Fixed bug in sameValueAs when comparing an integer to a float/double.
+
+Reasoners:
+ o Extended rule parser to support typed literals using N3 type syntax
+ such as 'true'^^xsd:byte.
+
+ o Fixed bug with rule sets which include a proprocessing hook to ensure,
+ the hooks are rerun after new triple adds which should invoke the hook.
+
+ o Fixed two bugs with derivation logging of backward rules.
+
+ o Modified processing of non-monotonic rulesets (involving drop/remove) so
+ that each entry in the conflict set is fired separately and all the
+ consquences propagated before attempting to fire the next rule.
+ To avoid performance hits, rulesets not involving such operators
+ execute as before.
+ User defined Builtins which remove data should be marked as such
+ using the isMonotonic method.
+
+ o Fixed bug in TransitiveGraphCache which had resulted in some
+ transitive reductions being incompletely reduced (i.e. some
+ indirect property instances were being incorrectly reported as
+ being direct).
+
+ o Added "drop" operator as an alternative to "remove" when performing
+ non-monotonic rewrites.
+
+ o Fixed bug in rebind/reset of infgraphs which use TGC and failed to
+ reset the transitive engine.
+
+ o Optimized Resource.remove operations for the case where the parent model
+ is an InfModel.
+
+ o The default DIG reasoner used in the documentation examples has been
+ changed from Racer to Pellet. Pellet is free and open-source, while Racer
+ has switched to a commercial license model.
+
+Ontology API
+ o OntDocumentManager now delegates file resolution and model caching to
+ FileManager, which means that FileManager's resolution strategies can
+ be used to locate ontology files (e.g. from the classloader).
+ o Prefix mapping and ontology language selection in the OntDocumentManager
+ has been deprecated, and will be removed in a future version of Jena.
+
+Command line utilities
+ o New utility jena.rdfcat, which can merge any number of individual rdf
+ documents together into one model, and perform syntax translation (e.g.
+ RDF/XML to N3).
+ o New query utilities for SPARQL
+
+ModelLock
+ o Deprected in favour of Lock (in shared).
+ o Two implementations: LockMRSW and LockMutex
+
+==== End Jena 2.3
+
+
+MySQL
+-----
+There is a problem when using MySQL j-connection 3.1.* and MySQL 4.1.*.
+It manifests itself as truncation of long literals. Systems not using long
+literals should not see any problem. Using j-connector 3.0.* or the
+development versions of j-connector 3.2 do not exhibit the problem.
+
+Post 2.2beta change list
+
+
+ ARP
+ o Fixed XMLLiteral bug relevant to OWL-S
+ o Added workaround for ICU bug.
+ The workaround may slow processing of Tamil and other langauges
+ which use Unicode composing characters. If you are processing
+ large volumes of Tamil using a patched version of icu4j may be
+ faster. Ask on jena-dev for more information.
+ o Improved character encoding support: all character encodings
+ supported by Java are now supported by Jena.
+
+ FileGraph and ModelMakerImpl
+ o ModelMakerImpl now implements [the obsolescent] createModelOver
+ using maker.openModel( ... ) rather than .createModel( ... ). This
+ fixes a problem with existing files in the directory not being
+ consulted for their contents.
+
+ o FileGraphs now (weakly) support (non-nested) transactions, using
+ checkpoint files to record their state at a begin() and restoring
+ that state at an abort(). A commit() writes the current state to
+ the backing file and deletes the checkpoint.
+
+ InfModelBase (hence, any inference model)
+ o Inference models now (weakly) support transactions; they delegate them to
+ their base model. Additionally, an abort() will do a rebind().
+
+ JMS & ModelSpec
+ o Added new modelName property to the vocabulary and schema, ready
+ to properly support named models as well as model makers.
+
+ o The specification for RDB models has changed: it is not the maker,
+ but it's /hasConnection/ value, that has the connection properties.
+ (This allows the connection to be shared, or to be prespecified.)
+
+ o The vocabulary class JMS has been renamed to JenaModelSpec. There
+ is a (deprecated) JMS subclass to allow legacy use of the vocabulary.
+
+ o OntModelSpec understands the `modelName` property; it gives the name
+ of the model (in the baseModelMaker) which is to be used in a
+ ontModelSpec.create() call.
+
+ OWL Syntax Checker
+ o No longer in the Jena download.
+ o A separate contribution.
+ o Can be separately download from the Jena project files page.
+
+ PrefixMappings
+ o the requirement that adding `(prefix, uri)` to a prefix mapping remove
+ any existing prefix for `uri` has been removed. Calls that run the
+ mapping backward (eg qNameFor()) will get a correct answer, not
+ necessarily the same one each time; if possible, it will be the
+ "most recently bound" prefix. (The "not possible" cases are those
+ where a prefix has been removed and the inverse mapping has been
+ regenerated.)
+
+ Ontology API
+ o As part of a move to provide more consistent behaviour, listDeclaredProperties
+ has been completely re-written. The new behaviour, which in some
+ important respects differs from the old behaviour, is now documented
+ in doc/how-to/rdf-frames.html. There has also been a non
+ backwards-compatible change in the meaning of the Boolean flag
+ passed to listDeclaredProperties.
+ o An OntModel can now list the root classes in the local class hierarchy,
+ see OntModel.listHierarchyRoots()
+
+ DIG reasoner
+ o Fixed a bug that meant that <top> and <bottom> were not being translated
+ to owl:Thing and owl:Nothing, and hence not appearing in output
+
+ RDF/XML Output
+ o Improved character encoding support: all character encodings
+ supported by Java are now supported by Jena.
+
+Post Jena 2.1 change list [up to 2.2beta]
+
+ RDF API
+ o Fixed bug in typed literals support which caused isValidLiteral tests
+ to fail on user defined types derived indirectly from simple types.
+ o Fixed bugs in conversion of Calendar to XSDDateTime
+ o Fixed XSDDouble isValidValue test to check for Double
+ o Fixed XSDbase64Binary, XSDhexBinary returning strings instead of byte[]
+
+ o GraphExtract operations made available through ModelExtract plus
+ StatementBoundary[Base] & StatementTripleBoundary.
+
+ o Model has gained read(String url, String baseURI, String lang ).
+
+ Database
+ o Fixed user-reported problem where removeNsPrefix() wasn't persistent
+ o handles some constraints internally
+ o A minor change to ModelCom has improved the speed
+ with which DB models with several prefixes are opened.
+
+ GraphBase and Reification SPI
+ o Reifier::getHiddenTriples() and getReificationTriples() REMOVED and
+ replaced by iterator-returning find(TripleMatch) [for all quadlets],
+ findExposed(TripleMatch) [for exposed quadlets, ie Standard], and
+ findEither(TripleMatch, boolean showHidden) [for exposed or hidden
+ quadlets].
+
+ o Reworking of GraphBase to clean up reification and fix bug with
+ duplicated fully-reified triples. GraphBase now implements find()
+ by appending triples from reifier with triples from local triple
+ store. find() is not over-ridable; over-ride graphBaseFind() instead.
+ Similarly size -> graphBaseSize, contains -> graphBaseContains.
+
+ o Reworking of SimpleReifier to express it in terms of implementations
+ of a store for fragments and a store for complete triples, with new
+ interfaces. This should allow implementors of persistent Graphs an
+ easier time of it. [Driven by GraphBDB work, so there's an example to
+ hand.]
+
+ o Reifiers must also implement size[OfExposedTriples]() and close()
+ methods.
+
+ Model & Graph removeAll(), remove(S, P, O)
+ o added new API operation Model::removeAll() which removes "all" statements
+ from a model [currently there are issues about inference models]
+ o added removeAll() to Graph BulkUpdateHandler
+ o added Model::remove(S, P, O) which removes all statements matching
+ (S, P, O) with nulls as wildcards
+ o added BulkUpdateHandler.remove(S,P,O) removing triples matching
+ (S, P, O), Node.ANY as wildcard
+ o BulkUpdateHandler generates events for these
+
+ o ModelFactory has gained createUnion(Model, Model) which creates a
+ dynamic union of the two argument models.
+
+ o The class GraphExtract and its related interface TripleBoundary
+ have been created to allow the extraction of rooted subgraphs
+ from a graph, terminating at triples satisfying some boundary
+ condition.
+
+ GraphMem, SmallGraphMem
+ o GraphMem has had the redundant Set(Triple) excised, and changes made
+ to NodeToTriplesMap to push the triple-matching inwards and simplify
+ GraphMem's find code. It will use a little less memory and should be
+ a tad faster.
+ o a new memory-based Graph, SmallGraphMem, has been introduced. This
+ *only* holds a Set(Triple); no indexing is done. Hence it is
+ unsuitable for graphs with more than "a few" statements, unless
+ memory footprint is (much) more important than search speed. It
+ is primarily an extreme to compare other Graphs against.
+
+ Graph Capabilities gains findContractSafe()
+ o used to tell prettywriter that its use of find() works, otherwise
+ it falls back to the ordinary writer.
+
+ Graph Query handling
+ o Query now rewrites (some) RDQL pattern matches which are equivalent
+ to startsWith, endsWith, or contains to use new Expression nodes
+ with labels J_startsWith, J_endsWith, J_contains, to allow back
+ ends to optimise those.
+
+ RDQL
+ o Added langeq operator
+ o Remove ResultBinding.getValue() (which was an internal use
+ operation) as part of move to more directly using the graph level
+ queryhandling.
+ o ResultBinding becomes an interface. See also ResultBindingImpl.
+
+ Event handling
+ o added new graph.GraphEvents as holder of event constants with one
+ such, .removeAll, issued by BulkUpdateHandler for removeAll(), and
+ a static method for creating removed-by-pattern triple values.
+ o the standard Jena readers generate startRead and finishRead events
+ o all the Graph events now come with their source Graph attached as an
+ argument to the event method.
+ o added test case and fixed resulting issues to ensure that .remove()
+ on the iterator from find() generated a notifyDeleteTriple event.
+
+ Reasoners
+ o Changed processing of PROPruleSet on GenericRuleReasoners to accept
+ multiple rulesets and merge them
+ o Added support for @prefix and @include to the Rule parser utility
+ o Suppressed internal properties (rb:xsdRange etc) from leaking out of infmodel
+ o Fix space leak in backward chainer
+ o Added subProperty inheritance of domain/range values
+ o Fixed validation of owl Functional properties to handle literals
+ o Changed validation report of un-instantiatable classes to be warnings rather
+ than errors, report name is "Inconsistent class"
+ o During validation the culprit resource is now made available via the error
+ report's getExtension method
+ o Fixed bug in backward reasoner which caused it to occasionally miss
+ some results in non-deterministic ways
+ o Fixed performance problem with listing all triples in a transitive reasoner
+ o Fixed bug 927644, mishandling of cycles in transitive reasoner
+ o Fixed ommission in handling of someValuesFrom applied to an rdfs:Datatype.
+ o Fixed bug in hide() table not being carried across from prebuilt
+ reasoner caches, which resulted in the prototypical instance of
+ owl:Thing being visible in listIndividuals.
+ o Fixed bug in TransitiveReasoner reported by wangxiao
+ o Changed delete for RETE reasoner to be non-incremental to work around
+ bug without demanding full reference counting
+ o Added experimental OWLMini and OWLMicro reasoners
+
+ o [kers] Added WrappedReasonerFactory class and RuleReasoner interface.
+ Some tweaking to "implements" clauses. Refactored out some setRules
+ code into FBRuleReasoner and BaseRuleReasonerFactory, to make it easy
+ to share code for ModelSpec's reasoner specs.
+
+ ModelSpecs
+ o The modelspec language has been extended. Reasoner specs can now
+ specify multiple rulesets by URL or by literal strings. Schemas
+ may also be specified by URL.
+
+ o Internal refactoring has cleaned up the API somewhat, and there
+ is, optionally, config information read from
+
+ etc/modelspec-config.n3
+
+ At the moment, this only allows the Java class that implements
+ a given jms:ModelSpec type to be specified.
+
+ o The JMS (Java Model Spec) vocabulary class has had its schema
+ extracted - it is now loaded from vocabularies/jena-model-spec.n3.
+ That vocabulary element is now added to jena.jar (as are some other
+ vocabulary elements used by the system).
+
+ PrefixMappings
+ o Standard no longer contains vcard, jms, or rss.
+ o Extended introduced = Standard + vcard, jms, rss.
+ o usePrefix deprecated - use shortForm instead.
+ o qnameFor added; result is legal qname or null.
+ o w.withDefaultMapping(x) added, which adds mappings from x which
+ don't clash with those already in w.
+ o the restriction that namespaces must not end with name characters
+ has been removed.
+
+ Exceptions
+ o added WrappedException extends JenaException for wrapped exceptions
+ o added WrappedIOException extends WrappedException
+
+ Node
+ o Node cache hash table replaced by specialised implementation
+ o new Node methods getNameSpace, getLocalName, hasURI(String)
+ o minor adjustments to Node.create(String) to allow for specifying
+ language or type for literals, use of default prefix, and
+ elimination of the nn-NN hack for numeric literals.
+ o default Node.toString() uses quoting and @/^^ for literals
+
+ Triple
+ o Triple.create now uses a cache
+
+ Resource
+ o new method hasURI(String)
+
+ Ontology API
+ o Added a new method getOWLLanguageLevel() to OntModel, which returns the
+ OWL sublanguage - lite, DL or full - and error messages
+ o Fixed ont language profiles to allow .as() on e.g. owl:SymmetricProperty as
+ OntProperty.class. Previously this relied on the reasoner; the change was
+ needed to support the DIG interface.
+ o OntModels created over existing base models don't include elements
+ from their document manager's PrefixMapping if they would clash with
+ those already existing in the base.
+ o Fixed bug 985258 - schemagen can now create RDFS vocabularies
+ o Fixed bug 940570 - solved a problem with listIndividuals when using
+ the default OWL reasoner
+ o Fixed bug 948995 - .as() on owl:InverseFunctionalProperty for
+ datatype properties failing
+ o Various fixes to prevent cycles in the graph confusing listSubClasses,
+ listSuperClasses, etc
+ o fixed profiles to allow owl:Thing .as(OntClass.class) even if no
+ reasoner present
+ o In response to bug 1065103, DAML models now by default use rdfs:subClassOf,
+ rdfs:subPropertyOf, rdfs:range and rdfs:domain in preference to their daml:
+ equivalents. The old (Jena 2.1) behaviour is available by switching to the
+ DAML_OILLegacyProfile in the OntModelSpec. The new version more closely
+ matches what typical DAML ontologies do.
+ o Added createIndividual() to OntClass
+ o Added listDataRanges() to OntModel
+
+ DIG reasoner interface
+ o Various bug fixes, plus a significant performance fix for listIndividuals()
+
+ OWL Syntax Checker
+ o Added support for OntDocumentManager
+ o Improved command line, supports N3 etc, OntDocumentManager
+
+ File Utilities
+ o ModelLoader retired by deprecation.
+ Use FileManager instead, specifically, FileManager.get() for the
+ global FileManager (or create your own).
+ Create new model with FileManager.get().loadModel
+ Read into an existing model with FileManager.get().readModel
+ o In schemagen, inference is now *not* used by default on input models; a
+ new option --inference has been added to allow inference to be turned on.
+
+ Creating sets/maps
+ o util.CollectionFactory has static methods for creating hashed Maps
+ and hashed Sets. These are used in the internals to allow the
+ implementing classes to be changed (eg to use the trove library).
+ Non-hashed-collection create methods may follow.
+ o This was initially called HashUtils; that class remains, with the
+ initial method names, but it is deprecated and will disappear post
+ J2.2.
+
+ ARP
+ o New support for non-Xerces SAX sources.
+ o Support for DOM sources (Java 1.4.2 and later).
+ o ARP setup rationalized, a few methods deprecated as a result.
+ o Improved documentation, covering new features, (see doc/ARP)
+ o *Removed* StanfordImpl, assuming noone uses it. Please
+ complain (jena-dev@yahoogroups.com) if assumption was false.
+
+ Utilities
+ o new class IteratorCollection with methods iteratorToSet and
+ iteratorToList (heavility used in tests and useful in general)
+
+ N3
+ o Resolve relative URIs if there is a base.
+
+
+
+
+Jena 2.1 - Main changes from Jena 2.0
+ Installation
+ The names of some jars have changed be sure to update your classpath.
+ The name of the xerces jars are now: xercesImpl.jar and xml-apis.jar
+ We also require Jakarta commons logging: commons-logging.jar
+ See readme.html for the full list of jars.
+
+ OWL Syntax Checker
+ Major update from alpha version (Jena 2.0), to production
+ version (Jena 2.1).
+ API created.
+ Many fold performance improvement (orders of
+ magnitude)
+ Now conformant with OWL Recommendation.
+ Streaming mode added, suitable for lower memory
+ environments or large input.
+ Command-Line jena.owlsyntax program added.
+ Still to do: better error messages.
+
+ RDF/XML-ABBREV output
+ Changes default configuration to not use property
+ attributes, which seem unpopular.
+
+ ARP
+ Extended API to show bnode scope and XML Namespaces.
+ Discovered memory leak which has been present since
+ the beginning. This is not fixed. Users of ARP and
+ Jena in memory limited, or long-running applications,
+ or reading lots of varied RDF/XML, should read the
+ updated Javadoc for the package
+ com.hp.hpl.jena.rdf.arp.
+
+ Reasoner
+ Small bug fixes (see below).
+
+ Xerces
+ Now requires Xerces 2.6.0 or better. The included jars are Xerces 2.6.1.
+
+ Ontology API
+ General bug fixes and improvements based on jena-dev feedback.
+
+ The default document manager policy (etc/ont-policy.rdf) no longer
+ re-directs imports of owl.owl and daml+oil.daml to a cached copy in
+ the 'vocabulary' directory. This is becuase the vocabulary directory
+ is not included in jena.jar, and this default re-direction was causing
+ problems in some applet or web service environments. The Jena 2.0
+ behaviour can be restored by replacing ont-policy.rdf with ont-policy-test.rdf.
+
+ Instance detection has been improved, with the side-effect that DAML
+ ontologies using the DAML micro rule reasoner may now report that
+ instances have rdf:type daml:Thing in addition to other types.
+
+Jena 2.1 changes from Jena 2.1-dev-3
+ Minor bug fixes in OWL Syntax Checker.
+ Streaming mode in OWL Syntax Checker.
+ Documented ARP memory leak.
+
+Jena 2.1-dev-3
+ Implements W3C RDF and OWL Proposed Recommendations
+ OWL Syntax Checker - much faster, new API (error msgs still being worked on)
+ RDF/XML-ABBREV output various bug fixes
+ RDF/XML-ABBREV msg added requesting bug reports on rdf:parseType="Collection"
+ ARP new extended handler for scope of blank nodes and namespace handler
+ ARP improved syntax error messages
+ OWL Syntax checker prolog source included in download (see tools dir)
+
+Jena 2.1-dev-2:
+ Developers' release to include recent bug fixes (notably
+ handling of typed literals in validation rules).
+ Do not use this version unless you need one or more bug
+ fixes not in Jena 2.0.
+
+Jena 2.1-dev-1:
+ This is a developers' release, particularly
+ intended for users of the OWL Syntax Checker.
+ Most users should continue to use Jena 2.0.
+ For changes, see directly below.
+ Documentation may not be up to date.
+ Do not use this version unless:
+ - you need a conformant OWL Syntax Checker
+ - you need one or more of the bug fixes not in
+ Jena 2.0
+
+
+RDF API:
+o Bug fixes:
+ - fixed issue with typed literals sometimes treating lexically different,
+ sameValueAs resources as equal.
+
+ - fixed bug in Model::remove(StmtIterator) at the expense of manifesting
+ the iterator into a List
+
+ - fixed bug in .remove on StmtIterators returned from listStatements()
+ on a memory model
+
+o ModelFactory improvements:
+ - ModelSpecs can now be identified by URI as well as Model values
+ - ModelRDBMaker.createModel will now return a ModelRDB rather than plain Model
+
+Reasoner subsystem:
+
+o Fixed delete bug in FORWARD_RETE configurations, remove of statements
+ should now remove the consequents of that statement.
+o Added a check for constructing one OWL reasoner instance layered on top
+ of another because this can have a large performance impact to no benefit.
+o Added a "hide" primitive which marks nodes as hidden. When querying an
+ inference model no triples containing hidden subject or object nodes will
+ be included in the result iterator.
+ Used this to hide class-prototype instances
+o Extended the comparision builtins (equal, le etc) to support comparison of
+ XSDDataTime instances. Many thanks to Bradley Schatz (Bradley@greystate.com)
+ for supply the patches for this.
+o Extended OWL rules to include more explicit representation of XSD knowledge.
+o Various bug fixes in OWL rules (maxCardinality bug, hasValue in intersection
+ lists fixed, bug in someValuesFrom fixed, misssing property subclass axioms).
+o Fixed bug in RETE engine which could loop when deleting non-deletable triples.
+o Fixed bug in LP engine which could lead to loss of variable bindings
+ (manifested as "Internal error in LP reasoner: variable in triple result")
+o Extended is/notDTtype to check for ill-formed typed literals.
+
+OWL Syntax Checker
+o Now conforms with OWL Proposed Rec of December 2003
+ - Performance much improved. There is
+ about a one second delay on start-up.
+ - Error messages still somewhat cryptic
+ (Should be better in next release)
+
+RDF/XML-ABBREV output
+o Failed to fix bug concerning rdf:parseType="Collection"
+ - added new message trying to generate sufficient user feedback
+ on jena-dev to track down bug.
+o Fixed other bugs on bug list
+
+RDQL
+o Improved handling of character sets in qnames
+
+N3
+o Improved handling of character sets in qnames
+
+
+
+Graph query SPI [NB NOT visible at the model level]
+
+o replaced use of Graph for constraints by new Expression interface as
+ part of ongoing query improvement.
Modified: incubator/jena/Jena2/JenaZip/trunk/assembly-jena-zip.xml
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/JenaZip/trunk/assembly-jena-zip.xml?rev=1209992&r1=1209991&r2=1209992&view=diff
==============================================================================
--- incubator/jena/Jena2/JenaZip/trunk/assembly-jena-zip.xml (original)
+++ incubator/jena/Jena2/JenaZip/trunk/assembly-jena-zip.xml Sat Dec 3 19:58:39 2011
@@ -114,18 +114,13 @@
</fileSet>
</fileSets>
- <files>
- <file>
- <source>../ARQ/ChangeLog.txt</source>
- <destName>ReleaseNotes-ARQ.txt</destName>
- <fileMode>0622</fileMode>
- </file>
- <file>
- <source>../Jena2/ReleaseNotes.txt</source>
- <destName>ReleaseNotes-Jena.txt</destName>
- <fileMode>0622</fileMode>
- </file>
-
- </files>
+ <fileSet>
+ <outputDirectory>/</outputDirectory>
+ <includes>
+ <include>ReleaseNotes-Jena.txt</include>
+ <include>ReleaseNotes-ARQ.txt</include>
+ </includes>
+ <fileMode>0622</fileMode>
+ </fileSet>
</assembly>
\ No newline at end of file