Releases: RDFLib/rdflib
RDFlib 6.0.0
6.0.0 is a major stable release that drops support for Python 2 and Python 3 < 3.7. Type hinting is now present in much
of the toolkit as a result.
It includes the formerly independent JSON-LD parser/serializer, improvements to Namespaces that allow for IDE namespace
prompting, simplified use of g.serialize()
(turtle default, no need to decode()
) and many other updates to
documentation, store backends and so on.
Performance of the in-memory store has also improved since Python 3.6 dictionary improvements.
There are numerous supplementary improvements to the toolkit too, such as:
- inclusion of Docker files for easier CI/CD
- black config files for standardised code formatting
- improved testing with mock SPARQL stores, rather than a reliance on DBPedia etc
RDFlib 5.0.0
5.0.0 is a major stable release and is the last release to support Python 2 & 3.4. 5.0.0 is mostly backwards-
compatible with 4.2.2 and is intended for long-term, bug fix only support.
5.0.0 comes two weeks after the 5.0.0RC1 and includes a small number of additional bug fixes. Note that
rdflib-jsonld has released a version 0.5.0 to be compatible with rdflib 5.0.0.
There is a large list of changes since the 4.2.2 release, see the CHANGELOG for details.
See https://rdflib.dev for the proposed future release schedule.
RDFLib 4.2.2
This is a bug-fix release, and the last release in the 4.X.X series.
Bug fixes:
- SPARQL bugs fixed:
- Fix for filters in sub-queries
#693 - Fixed bind, initBindings and filter problems
#294
#555
#580
#586
#601
#615
#617
#619
#630
#653
#686
#688
#692 - Fixed unexpected None value in SPARQL-update
#633
#634 - Fix sparql, group by and count of null values with
optional
#631 - Fixed sparql sub-query and aggregation bugs
#607
#610
#628
#694 - Fixed parsing Complex BGPs as triples
#622
#623 - Fixed DISTINCT being ignored inside aggregate functions
#404
#611
#678 - Fix unicode encoding errors in sparql processor
#446
#599 - Fixed SPARQL select nothing no longer returning a
None
row
#554
#592 - Fixed aggregate operators COUNT and SAMPLE to ignore unbound / NULL values
#564
#563
#567
#568 - Fix sparql relative uris
#523
#524 - SPARQL can now compare xsd:date type as well, fixes #532
#532
#533 - fix sparql path order on python3: "TypeError: unorderable types: SequencePath() < SequencePath()""
#492
#525 - SPARQL parser now robust to spurious semicolon
#381
#528 - Let paths be comparable against all nodes even in py3 (preparedQuery error)
#545
#552 - Made behavior of
initN
inupdate
andquery
more consistent
#579
#600
- Fix for filters in sub-queries
- SparqlStore:
- Fixes and tests for AuditableStore
#537
#557 - Trig bugs fixed:
- Fixed Nquads parser handling of triples in default graph
#535
#536 - Fixed TypeError in Turtle serializer (unorderable types: DocumentFragment() > DocumentFragment())
#613
#648
#666
#676 - Fixed serialization and parsing of inf/nan
#655
#658 - Fixed RDFa parser from failing on time elements with child nodes
#576
#577 - Fix double reduction of \ escapes in from_n3
#546
#548 - Fixed handling of xsd:base64Binary
#646
#674 - Fixed Collection.setitem broken
#604
#605 - Fix ImportError when main already loaded
#616 - Fixed broken top_level.txt file in distribution
#571
#572
#573
Enhancements:
- Added support for Python 3.5+
#526 - More aliases for common formats (nt, turtle)
#701 - Improved RDF1.1 ntriples support
#695
#700 - Dependencies updated and improved compatibility with pyparsing, html5lib, SPARQLWrapper and elementtree
#550
#589
#606
#641
#642
#650
#671
#675
#684
#696 - Improved prefix for SPARQL namespace in XML serialization
#493
#588 - Performance improvements:
- SPARQLStore improvements
- SPARQL prepared query now carries the original (unparsed) parameters
#565 - added .n3 methods for path objects
#553 - Added support for xsd:gYear and xsd:gYearMonth
#635
#636 - Allow duplicates in rdf:List
#223
#690 - Improved slicing of Resource objects
#529
Cleanups:
- cleanup: SPARQL Prologue and Query new style classes
#566 - Reduce amount of warnings, especially closing opened file pointers
#518
#651 - Improved ntriples parsing exceptions to actually tell you what's wrong
#640
#643 - remove ancient and broken 2.3 support code.
#680
#681 - Logger output improved
#662 - properly cite RGDA1
#624 - Avoid class reference to imported function
#574
#578 - Use find_packages for package discovery.
...
RDFLib 4.2.1
This is a bug-fix release.
Minor enhancements:
- Added a Networkx connector
#471,
#507 - Added a graph_tool connector
#473 - Added a
graphs
method to the Dataset object
#504,
#495 - Batch commits for
SPARQLUpdateStore
#486
Bug fixes:
- Fixed bnode collision bug
#506,
#496,
#494 - fix
util.from_n3()
parsing Literals with datatypes and Namespace support
#503,
#502 - make
Identifier.__hash__
stable wrt. multi processes
#501,
#500 - fix handling
URLInputSource
without content-type
#499,
#498 - no relative import in
algebra
when run as a script
#497 - Duplicate option in armstrong
theme.conf
removed
#491 Variable.__repr__
returns a python representation string, not n3
#488- fixed broken example
#482 - trig output fixes
#480 - set PYTHONPATH to make rdfpipe tests use the right rdflib version
#477 - fix RDF/XML problem with unqualified use of
rdf:about
#470,
#468 AuditableStore
improvements
#469,
#463- added asserts for
graph.set([s,p,o])
sos
andp
aren'tNone
#467 threading.RLock
instances are context managers
#465- SPARQLStore does not transform Literal('') into Literal('None') anymore
#459,
#457 - slight performance increase for graph.all_nodes()
#458
Testing improvements:
- travis: migrate to docker container infrastructure
#508 - test for narrow python builds (chars > 0xFFFF) (related to
#453,
#454
)
#456,
#509 - dropped testing py3.2
#448 - Running a local fuseki server on travis and making it failsafe
#476,
#475,
#474,
#466,
#460 - exclude
def main():
functions from test coverage analysis
#472
RDFLib 4.2.0
This is a new minor version of RDFLib including a handful of new features:
- Supporting N-Triples 1.1 syntax using UTF-8 encoding
#447,
#449,
#400 - Graph comparison now really works using RGDA1 (RDF Graph Digest Algorithm 1)
#441
#385 - More graceful degradation than simple crashing for unicode chars > 0xFFFF on
narrow python builds. Parsing such characters will now work, but issue a
UnicodeWarning. If you runpython -W all
you will already see a warning on
import rdflib
will show a warning (ImportWarning).
#453,
#454 - URLInputSource now supports json-ld
#425 - SPARQLStore is now graph aware
#401,
#402 - SPARQLStore now uses SPARQLWrapper for updates
#397 - Certain logging output is immediately shown in interactive mode
#414 - Python 3.4 fully supported
#418
Minor enhancements & bugs fixed:
- Fixed double invocation of 2to3
#437 - PyRDFa parser missing brackets
#434 - Correctly handle \uXXXX and \UXXXXXXXX escapes in n3 files
#426 - Logging cleanups and keeping it on stderr
#420
#414
#413 - n3: allow @base URI to have a trailing '#'
#407
#379 - microdata: add file:// to base if it's a filename so rdflib can parse its own
output
#406
#403 - TSV Results parse skips empty bindings in result
#390 - fixed accidental test run due to name
#389 - Bad boolean list serialization to Turtle & fixed ambiguity between
Literal(False) and None
#387
#382 - Current version number & PyPI link in README.md
#383