Releases: SaftIng/Saft
0.9.1
0.9.0.2
0.9
Important: This is a maintenance and stabilization release. We stabilized some parts, cleaned some others. The basement of Saft became quite stable. It has also a good test coverage. But some depending parts can't be maintained and developed further because of our limited time. With this release we wanted to slim down Saft, to what it is supposed to be: a stable RDF library to handle RDF data. Some additions and components are gone, because of limited use for us as well as not being in a useful state.
Therefore, we broke backward compatibility for some parts! Please have a look in the following.
So, if you guys use stuff, we killed (recently) just open an issue and tell us about it. We are fully open for critics and suggestions and if we see, someone needs certain parts of Saft, we might able to support it.
Discussions about release 0.9.0 can be found in issue #87.
Highlights
- minimum PHP version is 5.6
- removed Saft/Addtion/Rest and Saft/Skeleton
- improved stability: added further test cases, fixed minor bugs
- added Travis support for some package (removed Travis support for Saft itself, because each package has its own test environment)
API breaking changes
Removed
- removed Saft/Data/SerializerFactoryImpl.php (because it had no real implementation)
- removed Saft/Addition/Rest (because its not complete, not maintained and not in use by us.)
- removed Saft/Skeleton (parts will be moved into a separate repository)
Changed
- IMPORTANT: changed all classes which need NodeUtils, SparqlUtils or QueryUtils - mostly __construct()
- classes NodeUtils, SparqlUtils or QueryUtils remain for now but were marked deprecated and will soon be removed
- QueryUtils::getQueryType made non-static
composer
- Minimum PHP version set to 5.6
- removed packages (e.g. obsolete ones due removal of Skeleton, and some for code quality)
- all Saft packages require other Saft packages in version >= 0.9
Marked deprecated
- BasicTriplePatternStore
- Saft/Rdf/NodeUtils
- Saft/Sparql/Query/QueryUtils
- Saft/Sparql/SparqlUtils
Changes (backward compatible)
Addition/ARC2
- changed private properties of ARC2 to protected
Addition/Virtuoso
- changed private properties of Virtuoso to protected
0.8.1
0.8
About the release
In this release new features were added but also a massive restructuring took place. In some classes we used new-calls instead of given the instance through the constructor. Therefore dependency injection was not fully implemented. We corrected that mistake with this release. The changed files are listed below.
Minimum PHP version change
Version 0.8 needs at least PHP 5.4. Before some parts needed PHP 5.3 some PHP 5.4. To be more consistent with our vendors, we increased the version.
Broke backward compatibility
Addition/ARC2/Store/ARC2
- __construct has new parameter order:
- NodeFactory $nodeFactory,
- StatementFactory $statementFactory,
- QueryFactory $queryFactory,
- ResultFactory $resultFactory,
- StatementIteratorFactory $statementIteratorFactory,
- NodeUtils $nodeUtils,
- NodeRecognitionUtils $nodeRecognitionUtils,
- QueryUtils $queryUtils,
- SparqlUtils $sparqlUtils,
- array $configuration
Addition/EasyRdf/Data/ParserEasyRdf
- new parameter order in __construct:
- NodeFactory $nodeFactory,
- StatementFactory $statementFactory,
- StatementIteratorFactory $statementIteratorFactory,
- NodeUtils $noteUtils,
- $serialization
Addition/HttpStore/Store/Http
- new parameter order in __construct:
- NodeFactory $nodeFactory,
- StatementFactory $statementFactory,
- QueryFactory $queryFactory,
- ResultFactory $resultFactory,
- StatementIteratorFactory $statementIteratorFactory,
- NodeUtils $nodeUtils,
- array $configuration
Addition/Redland/Rdf/NodeFactory
- added NodeUtils to __construct parameter list
Addition/Virtuoso/Store/Virtuoso
- added parameter NodeUtils $nodeUtils and QueryUtils $queryUtils before $configuration parameter
Rdf
AbstractLiteral
- added NodeRecognitionUtils $nodeRecognitionUtils to __construct
LiteralImpl
- __construct has new parameter order:
- NodeRecognitionUtils $nodeRecognitionUtils
- $value,
- NamedNode $datatype = null,
- $lang = null
NamedNodeImpl
- new parameter order for __construct:
- NodeUtils $nodeUtils
- $uri
NodeUtils
- constructor now wants two parameters:
- NodeFactory $nodeFactory
- NodeRecognitionUtils $nodeRecognitionUtils
- createNodeInstance has lost one parameter: $nodeFactory
Skeleton
../Data/ParserFactory
- added parameter $parserSerializerUtils to __construct
../DependencyInjection/ContainerDice
- added parameter NodeFactory $nodeFactory to __contruct
../Store/Importer
- added ParserFactory $parserFactory as second parameter
- removed FileImporter class
Sparql/Query
AbstractQuery
- added one parameter to __construct: one instance of NodeUtils
AskQueryImpl, ConstructQueryImpl, DescribeQueryImpl, GraphQueryImpl, SelectQueryImpl and UpdateQueryImpl
- because of the changes in AbstractQuery, all this classes need an additional parameter NodeUtils in __construct
QueryFactoryImpl
- __construct has now 2 parameters:
- NodeUtils $nodeUtils
- QueryUtils $queryUtils
Sparql/SparqlUtils
- __construct has now StatementIteratorFactory $statementIteratorFactory as parameter
Store/AbstractSparqlStore
- added SparqlUtils $sparqlUtils as parameter to __construct
Changes
composer.json files
- changed all composer.json files to:
- require PHP 5.4
- require Saft packages with version 0.8 or higher
Rdf/NodeUtils
- simpleCheckURI now uses a more liberal algorithm to check a given URI
Skeleton/Data/ParserFactory
- does implements ParserFactory interface from now on
Test/TestCase
- added parameter $debug to assertStatementIteratorEquals: setting it to true will output detailed information in case an error occur
Added
- added class NQuadsParser to parse n-triples and n-quads
- added class RDFXMLParser to parse RDF/XML
0.7
New features
SPARQL endpoint
We added a SPARQL endpoint implementation, which is based on the SPARQL 1.1 protocol. Not all features of a typical endpoint are implemented yet, but we are working hard to finish that in the future.
Bugfixes and new features
- improved overall handling of SPARQL queries
ARC2
- removing all triples after a dropGraph call (#72, also removing according table content)
- fixed DELETE FROM WHERE query handling - before the fix, only one triple got removed, now all get removed.
- new: support for INSERT DATA queries (see SPARQL+ section for more information)
- new: support for DELETE DATA queries (see SPARQL+ section for more information)
BasicTriplePatternStore
- fixed hasMatchingStatements: should handle URI and pattern the right way
SerializerEasyRdf
- correct handling of BlankNodes
- literal values now come together with there type (e.g. xsd:string)
Deprecation warnings
FileImporter
We marked function getFileSerialization
of Saft/Skeleton/Store/FileImporter.php deprecated. Please use getSerialization
from now on.
NQuadsSerializerImpl
We marked Saft/Data/NQuadsSerializerImpl.php as deprecated, because it needs more refinement, but with EasyRDF a good alternative is already available. We leave the current version available, but we expect to remove it in one of the later releases. It wasn't part of the API before, but we wanted to give you guys a bit more heads-up.
SerializerFactoryImpl
Our SerializerFactoryImpl will not provide an instance of this class anymore! Furthermore, it will be marked deprecated too, because without the n-quads serializer it has no other purpose. Its function createSerializerFor will throw an exception when used.
Saft\Skeleton\Data\SerializerFactory
Class SerializerFactory adapted to not use SerializerFactoryImpl class anymore. It will only use SerializerFactoryEasyRdf from now on.
Broke backward compatibility in BasicTriplePatternStore
- To fix an invalid state in Store/BasicTriplePatternStore.php, we changed its return value for some functions from ArrayStatementIteratorImpl.php to StatementSetResultImpl. This change reflects the fact, that the query function only returns an instance of Sparql\Result\Result.php.
- I changed hasMatchingStatement to return only boolean and not a ValueResultImpl instance anymore. Sometimes it returned a ValueResultImpl instance which is forbidden due the function does only return boolean.
Extended API
ARC2
- Added function getStore() to ARC2.php, which returns the current ARC2 instance
- Added function getConnection() to ARC2.php, which returns the currently active connection to the database.
- Changed visibility of getRowCount from protected to public
Saft/Sparql
- Extended StatementSetResultImpl by implementing StatementIterator too (no adaptions should be necessary)
0.6.1
This release contains a lot of fixes to make sure, Saft runs on PHP 5.4, PHP 5.5, PHP 5.6, PHP 7.0, PHP nightly and HHVM, using Travis CI. We implemented additional checks in our tests to avoid errors if an extension is missing, for instance.
Therefore we needed to change some dependencies in the composer.json's:
- version of zendframework/zend-cache reduced from 2.6.* to 2.5.1
- version of slim/slim reduced from 3.2.* to 2.6.*
0.6
Feature release
We added the REST-implementation of the feature/rest-api
branch. It provides an interface between a public HTTP-interface and a store. You can send requests with certain parameters (e.g. s, p, o) and it will send you results back. A request will result in a SPARQL query and its answer will be transformed and send back.
That way, you can provide an alternative interface for a SPARQL endpoint, not allowing the full spectrum of SPARQL to query your store.
0.5
Important changes
All packages
All packages require minimum PHP 5.3.3 and minimum PHPUnit 4.8 and minimum PHP Codesniffer 2.5. Setting PHPUnit to >=4.8 allows newer versions, if user wants it. If a Saft package needs another Saft package, it uses at least version 0.4.
Rapid/Blank
- removed Saft/Rapid/Blank.php (was deprecated) - it was a test and is doesn't fit in Saft structure.
HTTP Store
- removed Saft/Addition/HttpStore/Net/Client.php: It's purpose was to abstract the interaction between Saft's HTTP-Store and an underlying HTTP-library. We moved its functionality back to Http.php.
- changed Saft/Addition/HttpStore/Store/Http.php:
- added setClient function (needs to be called after instantiation)
- change accessibility of method openConnection from protected to public; it needs to be called after you called setClient:
http = new Http(
new NodeFactoryImpl(),
new StatementFactoryImpl(),
new QueryFactoryImpl(),
new ResultFactoryImpl(),
new StatementIteratorFactoryImpl(),
$config
);
$http->setClient(new Curl()); // or a mock of Curl class
$http->openConnection();
QueryCache (our)
- uses Zend/Cache instead of Nette/Caching* from now on
- Changed requirements in composer.json:
- minimum PHP version 5.3.3
- zendframework/zend-cache 2.6.*
- saft/saft-store >= 0.4
- phpunit/phpunit >= 4.8 (to allow newer versions, if necessary)