Skip to content

Releases: RDFLib/rdflib

RDFLib 4.2.2

29 Jan 17:18
Compare
Choose a tag to compare

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 in update and query more consistent
      #579
      #600
  • SparqlStore:
    • SparqlStore now closes underlying urllib response body
      #638
      #683
    • SparqlStore injectPrefixes only modifies query if prefixes present and if adds a newline in between
      #521
      #522
  • Fixes and tests for AuditableStore
    #537
    #557
  • Trig bugs fixed:
    • trig export of multiple graphs assigns wrong prefixes to prefixedNames
      #679
    • Trig serialiser writing empty named graph name for default graph
      #433
    • Trig parser can creating multiple contexts for the default graph
      #432
    • Trig serialisation handling prefixes incorrectly
      #428
      #699
  • 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:
    • SPARQL Aggregation functions don't build up memory for each row
      #678
    • Collections now support += (iadd), fixes slow creation of large lists
      #609
      #612
      #691
    • SPARQL Optimisation to expand BGPs in a smarter way
      #547
  • SPARQLStore improvements
    • improved SPARQLStore BNode customizability
      #511
      #512
      #513
      #603
    • Adding the option of using POST for long queries in SPARQLStore
      #672
      #673
    • Exposed the timeout of SPARQLWrapper
      #531
  • 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.
    ...
Read more

RDFLib 4.2.1

12 Aug 14:52
Compare
Choose a tag to compare

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]) so s and p aren't None
    #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

19 Feb 13:48
Compare
Choose a tag to compare

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 run python -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