dotNetRDF Changelog

What's new in dotNetRDF 1.0.8 Build 1.0.8.3533

Mar 25, 2015
  • This is a bug fix and stability release which primarily addresses a variety of nasty SPARQL corner cases in our SPARQL engine and result parsers. It also addresses some reported issues with the Find & Replace functionality in rdfEditor.
  • Also updated our dependencies and changed our PCL Profile to 328 which should provide support for an even wider range of .Net profiles than before.

New in dotNetRDF 1.0.7 Build 1.0.7.3471 (Nov 22, 2014)

  • This is a minor feature and bug fix release, the following minor features were added:
  • Added support for RDF 1.1 NTriples and NQuads syntaxes
  • Added consistent Timeout support across all HTTP based IStorageProvider implementations
  • It also contains an assortment of bug fixes:
  • Fixes for several SPARQL related bugs around GRAPH and UNION
  • TriG collection parsing bug fixes
  • Fixes for compatibility with recent Virtuoso releases
  • Fixes for inconsistent language tag matching behaviour

New in dotNetRDF 1.0.6 Build 1.0.6.3421 (Aug 14, 2014)

  • This is predominantly a bug fix and stability release that fixes some corner cases with SPARQL sub-query evaluation and bugs in the SPARQL Results JSON parser.
  • There is also an important fix for those that use dotNetRDF to connect to Stardog which fixes reasoning support when using Stardog 2.2 or later.

New in dotNetRDF 1.0.5 Build 1.0.5.3315 (May 24, 2014)

  • Changed:
  • Bug Fixes:
  • Fix a bug with Left Join producing incorrect results due to join linearization optimizations in some cases (CORE-406)
  • Fix a bug in substituting parameter values containing $ signs into SparqlParameterizedString instances (CORE-408)
  • Fix a corner case in evaluating CONSTRUCT queries with empty WHERE clause and concrete triples in template (CORE-407)
  • Fix overly strict SPARQL Results XML parsing (CORE-410)
  • Fix incorrect usage of Single.NaN and Double.NaN constants with equality operator (CORE-412)
  • Include location information in Illegal space in URIs error from NTriples tokeniser
  • Fix a bug with scheduling of sub-queries (CORE-416)
  • Fix a bug with GRAPH clauses being executed multiple times unecessarily (CORE-416)
  • Dependencies:
  • Upgrade VDS.Common to 1.3.0 (CORE-405)
  • Upgrade Json.Net to 6.0.3 (CORE-405)
  • Build:
  • Upgrade PCL build to Profile 136 (CORE-405)
  • Parsing:
  • Improve error message for excess triple pattern tokens (CORE-411)
  • Query:
  • Add FixedVariables and FloatingVariables properties to ISparqlAlgebra and related classes (CORE-406)
  • Improve logic for when Left Joins are linearized (CORE-406)
  • ExplainQueryProcessor improvements:
  • GRAPH clause explanations
  • Indentation of output for easier reading
  • Removed:
  • Builds
  • Remove SL4 and WP7 builds (CORE-405)

New in dotNetRDF 1.0.4 Build 1.0.4.3225 (Mar 14, 2014)

  • This is a minor feature and bug fix release, the following minor features were added:
  • Added support for RDF 1.1 NTriples and NQuads syntaxes
  • Added consistent Timeout support across all HTTP based IStorageProvider implementations
  • It also contains an assortment of bug fixes:
  • Fixes for several SPARQL related bugs around GRAPH and UNION
  • TriG collection parsing bug fixes
  • Fixes for compatibility with recent Virtuoso releases
  • Fixes for inconsistent language tag matching behaviour

New in dotNetRDF 1.0.1 Build 1.0.1.2809 (Oct 10, 2013)

  • This release is primarily a maintenance and bug fix release, it resolves a number of SPARQL bugs as well as making some performance improvements. It also includes improved internationalization support in the form of new configurable options for controlling how strings are sorted.
  • Portable Class Library Builds:
  • This is the first release to incorporate portable class library builds of dotNetRDF.
  • Stardog 2.0 Support;
  • This is also the first release to provide support for the recently released Stardog 2.0. This release does not take advantage of all the new features of Stardog 2.0 yet (e.g. native SPARQL Update support) but it will allow you to work with Stardog 2.0 servers using dotNetRDF.

New in dotNetRDF 1.0.0 Build 1.0.0.2473 (May 10, 2013)

  • New instance mode for simplified Configuration API usage
  • Updated Turtle W3C parser support to the latest W3C Candidate Recommendation
  • New ReadWriteSparqlConnector for connecting to arbitrary SPARQL capable stores which have both a query and update endpoint available
  • New optimization which improves performance for some ORDER BY + DISTINCT queries
  • Greatly improved rdfServer and rdfServerGui tools

New in dotNetRDF 0.7.1 Beta (Aug 18, 2012)

  • Added:
  • Core API
  • New Indexing data structures
  • New decorator classes to make it simpler to wrap extra functionality around existing implementations:
  • WrapperGraph
  • WrapperGraphCollection
  • WrapperTripleCollection
  • WrapperTripleStore
  • Bug Fixes:
  • Fixed a bug with parsers being too restrictive on permitted language specifier formats - thanks to Csaba Gonczi
  • Fixed a subtle bug around percent encoded characters in URIs - thanks to Rob Styles
  • Fixed a bug with GraphDiff and null reference handling
  • Core API
  • IGraph changes:
  • Changes definition of Assert() and Retract() to return booleans
  • Removes unecessary overloads of Assert() and Retract()
  • ITripleStore changes:
  • Changes definition of Add() and Remove() to return booleans
  • Adds indexer for accessing graphs and obsoletes the Graph() method in favour of this
  • Triple Collection changes:
  • BaseTripleCollection now defines Add() and Delete() as returning booleans
  • Refactored internals of TripleCollection to use our new MultiDictionary data structure
  • ThreadSafeTripleCollection is now a decorator that can be applied to any BaseTripleCollection instance, also made it available on Silverlight
  • Graph Collection changes:
  • Refactored internals of GraphCollection to use our new MultiDictionary data structure
  • ThreadSafeGraphCollection is now a decorator that can be applied to any BaseGraphCollection instance, also made it available on Silverlight
  • DiskDemandGraphCollection and WebDemandGraphCollection are now both decorators and so can be combined on top of each other as desired
  • Query
  • ISparqlDataset now defines AddGraph() and RemoveGraph() as returning booleans
  • Storage API
  • Refactored IStorageServer API
  • Added support for creating stores with Sesame - thanks to Jeen Broekstra
  • Standardized error handling across Storage Providers as far as possible - thanks to Ron Michael Zettlemoyer
  • Stardog
  • Avoid any transaction if calling UpdateGraph() without any updates - thanks to Ron Michael Zettlemoyer
  • Removed
  • Marked the TalisPlatformConnector as obsolete but usable
  • Marked the contents of the Data.Sql library as obsolete unusable
  • Removed the obsolete BackgroundPersistedGraph class
  • Marked the now superseded IndexedTripleCollection and it's descendants as obsolete usable
  • Marked the obsoleted ThreadSafeIndexedTripleCollection as obsolete unusable
  • Marked IStoreParams as obsolete unsuable
  • Marked the old overloads of IStoreReader and IStoreWriter as obsolete unusable

New in dotNetRDF 0.6.1 Beta (Mar 5, 2012)

  • Changed
  • Bug Fixes
  • Fixed an inadvertent StackOverFlowException in the StardogConnector constructor
  • Configuration
  • Updated vocabularies to reflect new properties in 0.6.x releases and remove defunct properties
  • Query
  • Experimental PLINQ optimisation of query evaluation for .Net 4.0 builds (disabled by default)

New in dotNetRDF 0.4.0 Beta (Mar 1, 2011)

  • Added:
  • Graph Difference Algorithm
  • Conversion from IGraph and SparqlResultSet to DataTable
  • More Extension Methods
  • LoadFromFile and LoadFromUri for Graphs and Triple Stores
  • ToLiteral for byte and sbyte
  • ToLiteralDate and ToLiteralTime for DateTime (gives only the xsd:date or xsd:time representation)
  • ASP.Net Integration
  • DatasetHandler for serving RDF datasets
  • QueryHandler, UpdateHandler and SparqlServer all now return SPARQL Service Description where appropriate
  • Configuration API
  • dnr:SparqlDataset and dnr:usingDataset properties
  • All new IGenericIOManager implementations - Fuseki, In-Memory and Read-Only - are now loadable via the ConfigurationLoader
  • dnr:enableCors property for disabling CORS Headers on HTTP Handlers
  • dnr:serviceDescription property for supplying own SPARQL Service Description for SPARQL Handlers
  • dnr:fromEmbedded property for loading data from embedded resources
  • Parsing:
  • Additional N3 Feature Support
  • Variable Nodes
  • New SimpleN3RulesReasoner which can process simple N3 rules of the form { } => { }
  • Notation 3 Parser supports Variables, @forSome and @forAll fully
  • New EmbeddedResourceLoader for loading RDF from embedded resources in assemblies
  • Query:
  • GROUP BY is now supported in subqueries
  • GROUP BY (?x AS ?y) now supported
  • Short form CONSTRUCT WHERE { } now supported
  • Scalar Arguments for aggregates added when in 1.1 Extended mode (only GROUP_CONCAT allows scalar arguments in 1.1 mode)
  • Added new SPARQL 1.1 functions
  • String Functions - CONCAT, CONTAINS, ENCODE_FOR_URI, LCASE, STRENDS, STRLEN, STRSTARTS, SUBSTR, UCASE
  • Date Time Functions - DAY, HOURS, MINUTES, MONTH, NOW, SECONDS, TIMEZONE, TZ and YEAR
  • Numeric Functions - ABS, CEIL, FLOOR, ROUND and ISNUMERIC
  • Hash Functions - MD5, SHA1, SHA224, SHA256, SHA384, SHA512
  • Additional Pellet Server Client features
  • ICV, Cluster, Predict and Similairty Services now supported
  • Update:
  • Added support for HTTP PATCH operation to SPARQL Uniform HTTP Protocol implementations
  • Added support for use of ?default as opposed to ?graph in the SPARQL Uniform HTTP Protocol support
  • Added support for the newly defined SPARQL Update 1.1 ADD, COPY and DELETE commands
  • Storage:
  • Expanded the IGenericIOManager interface to include methods for deletings graphs and listing graphs
  • Connector for Fuseki
  • Connector which wraps an in-memory store (i.e. a IInMemoryQueryableStore) or a SPARQL dataset (i.e. a ISparqlDataset)
  • Connector which wraps any IGenericIOManager/IQueryableGenericIOManager and makes it read-only
  • Writing:
  • New HtmlSchemaWriter outputs HTML versions of ontologies in a schema specification style rather than as a table like the existing HtmlWriter
  • New IQueryFormatter interface to allow customised formatting of SPARQL
  • Bug Fixes:
  • Notation 3 Parser allows variable quantification directives in Graph Literals
  • Queries with a LIMIT modifier containing FILTERs were optimised for lazy evaluation but would return incorrect results
  • in some cases
  • Queries with a DISTINCT modifer and a LIMIT were optimised for lazy evaluation when they shouldn't have been
  • Queries containing GRAPH clauses no longer unintentionally introduce a Product in some places
  • RDF/XML parser now correctly treats empty elements with rdf:datatype as literal properties rather than empty properties
  • SPARQL Query Parser now parses correctly if first item in the WHERE clause is a nested graph pattern
  • Non-Leviathan Query Processors record the time the Query took to execute
  • Some bug fixes around LiteralNode value comparisons regarding equivalences between .Net types and XML Schema types
  • Validation of Language Tags was overzealous and rejected some valid language tags and in some places language
  • tags weren't validated when they should have been
  • RDF/XML writer failed to properly XML encode URIs which contained multiple unescaped ampersands
  • Lots of bug fixes around interpretation of the SPARQL 1.1 specifications
  • Bug fix for incorrect rdfs:range and rdfs:domain handling in RdfsReasoner
  • General Improvements
  • Internal restructuring of how MIME Types are managed
  • Allows for new MIME Types, File Extensions and parsers to be registered with the API and used automatically where appropriate
  • Can use dotnetrdf:default-graph as a URI to explicitly access the default unnamed graph in a SPARQL dataset for most in-memory datasets
  • Parsing:
  • All Parsers should now throw RdfParseExceptions when null Graphs, Stores, filenames, streams etc are passed as arguments
  • SparqlRdfParser can now be created to use a specific RDF Parser rather than just auto-detection
  • UriLoader Caching improved
  • URIs are santised when being cached
  • Data is cached under both the request and response URIS
  • Extracted existing private implementation into an interface so users can choose to slot in alternative caching mechanisms if desired
  • Parsers all open files with the appropriate encoding where possible
  • Streams in the wrong encoded will cause parsers to issue a warning
  • Added Warning events to ISparqlResultsReader, ISparqlResultsWriter, SparqlQueryParser and SparqlUpdateParser
  • Query Improvements
  • Syntax is now SPARQL 1.1 Standard by default (rather than 1.1 Extended)
  • Leviathan SPARQL engine now operates over an ISparqlDataset which is an abstraction between the data and the
  • SPARQL engine which allows for out of memory datasets to be queried and updated with Leviathan
  • Reverse Translation from ISparqlAlgebra to SparqlQuery
  • Optimisation for queries using ORDER BY under some circumstances
  • Loads of fixes to SPARQL Join Semantics
  • Improvements to GRAPH clause implementation
  • Improved SparqlParameterizedString
  • Can now set values for Variables which are substituted into the query when you call ToString()
  • Has own Namespace Map allowing prefixes to be registered programatically and have the code take care of generating the PREFIX declarations
  • Improved ISparqlExpression interface to allow for traversing of expression trees and custom formatting
  • Changes to support latest 1.1 Draft Specifications
  • IN and NOT IN for SPARQL now support any expressions evaluate properly using SPARQL value equality
  • COALESCE now errors if none of the arguments evaluate to a non-null value
  • Update Improvements
  • WHERE clauses in Update Commands are now optimised
  • Added support for revised syntax of existing commands based on latest drafts of the SPARQL 1.1 Update specification
  • Writing Improvements
  • Writers all try to ensure correct encoding where possible (most already did this)
  • ASP.Net Improvements
  • All HTTP Handlers output CORS headers so RDF/SPARQL content is accessible to JS client (may be disabled
  • using dnr:enableCors if desired on a per HTTP Handler basis)
  • SparqlServer now supports omitting any of the processors (provided at least one is specified) so you can create
  • endpoints with some features explicitly disabled
  • Obsoleted Features
  • All ISqlIOManager features marked as obsolete (but still allowed until 0.5.x most likely at which point they will be removed/replaced)
  • RdfXmlTreeWriter and FastRdfXmlWriter marked as obsolete
  • SparqlParamaterizedString QueryText property marked obsolete in favour of the more general and descriptive CommandText property
  • Removed:
  • Obsolete VDS.RDF.Web classes removed
  • Removed obsolete methods related to Labyrinth SPARQL engine
  • Removed dataset management methods from ITripleStore and implementations
  • IBinaryOperator marker interface removed as ISparqlExpression.Type can now be used to determine whether an expression
  • is a binary operator
  • Removed obsolete and unused IRdfTranslator and corresponding VDS.RDF.Translation namespace

New in dotNetRDF 0.3.0 (Aug 12, 2010)

  • Bug Fixes:
  • Turtle Tokeniser supports + at the start of plain numeric literals
  • Fixed faulty behaviour of == and != operators for Nodes when nulls are involved
  • Turtle and N3 parsers remove incorrect behaviour regarding unescaped " occurring at end of string
  • Turtle and N3 writers now always escape " character
  • UriLoader caching behaviour when using ETag based caching fixed
  • Some issues with persistence in the StoreGraph fixed
  • Disposing ISqlIOManager multiple times without PreserveState on no longer hangs the process
  • RDF/XML writers properly encode unescaped ampersands where necessary
  • Sorting involving literal nodes no longer fails if invalid values for known types are given
  • RDF/XML parser should now properly handle xml:base and provide better xml:base scoping support
  • SPARQL
  • Unified Tokeniser for SPARQL Query and Update
  • SPARQL 1.1 Query
  • Now only Leviathan engine present in the library
  • Added support for proper IF function
  • Added support for MINUS patterns
  • Added support for SERVICE patterns
  • Added support for BINDINGS clause
  • FederatedSparqlRemoteEndpoint class for federated querying
  • ISparqlQueryProcessor interface for defining custom query processors
  • Multiple processor implementations provided
  • SPARQL 1.1 Update
  • New IUpdateableTripleStore interface
  • TripleStore class supports updates
  • Classes for representing different Update Commands
  • Parser for SPARQL Update
  • ISparqlUpdateProcessor for defining custom update processors
  • Multiple processor implementations provided
  • Apply full SPARQL Update on any Triple Store represented by an IGenericIOManager (full support dependent on features provided by IGenericIOManager)
  • New handler class for providing an endpoint supporting this protocol in your ASP.Net applications
  • SPARQL 1.1 Uniform HTTP Protocol for Graph Management
  • New SparqlHttpProtocolConnector for connecting to stores supporting this protocol
  • New handler class for providing an endpoint supporting this protocol in your ASP.Net applications
  • ISparqlHttpProtocolProcessor for defining custom protocol processors
  • Multiple processor implementations provided
  • SparqlConnector improved
  • Can be instantiated with pre-configured SparqlRemoteEndpoint instance
  • Properties for manipulating the underlying endpoint added
  • SparqlRemoteEndpoint improved
  • Default timeout increased to 30s instead of 15s
  • Support for HTTP Authentication and Proxy Servers
  • SPARQL Endpoints
  • New handlers for providing Query, Update and Protocol services so all existing query handlers are now marked
  • as obsolete
  • Support no-caching though this is not recommended
  • Supports absolute cache expiration
  • RDFa Support
  • RDFa 1.1 is supported
  • RdfAParser now supports selectable syntax compliance
  • New Configuration System
  • New RDF based configuration system
  • Allows for the encoding of various objects as RDF and the loading of these Objects from the RDF Graph
  • Much simpler mechanism for configuring ASP.Net applications
  • Pellet Server Client
  • Support for connecting to and using a Pellet Server knowledge base
  • General Improvements
  • FileLoader and UriLoader can now raise warning events
  • Library now uses IAsyncResult pattern in many places as opposed to manual thread spawning
  • More writers made thread safe
  • Improved how compressing writers detect collections to significantly improve speed on blank node heavy graphs

New in dotNetRDF 0.2.2 Re-release (Aug 12, 2010)

  • Bug Fixes:
  • CDATA nodes in RDF/XML handled properly

New in dotNetRDF 0.2.2 (Aug 12, 2010)

  • Bug Fixes:
  • Language Specifier handling for TriG and NTriples
  • RDFa parsing of documents without a DOCTYPE
  • Invalid QNames were output in some scenarios
  • SparqlParameterizedString inserts variables in a more accurate way
  • General Improvements:
  • Sub-graph matching
  • Union collections for Triples and Nodes
  • Query Improvements:
  • DISTINCT modifier for all aggregates
  • xsd:float calculations for numeric aggregates
  • Full property path support
  • IN and NOT IN operator support
  • New COALESCE, IRI, STRDT and STRLANG functions supported
  • Limited IF ELSE support
  • Major optimisations for much more scalable query on large datasets using Leviathan
  • Initial API outline for OWL support (no implementation yet)
  • Parsing Improvements:
  • Caching of Graphs by URI Loader for more efficient data retrieval
  • Support for @prefix attribute in RDFa 1.1 (based on current working group drafts)
  • Support for loading from data: URIs
  • Ontology API
  • New API for working with RDF data in terms of ontologies, resources, classes, properties and individuals
  • ReasonerGraph class provides for having a Graph which wraps an existing Graph and materialises the triples
  • inferred by a reasoner in itself without altering the wrapped Graph

New in dotNetRDF 0.2.1 (Aug 12, 2010)

  • Bug Fixes:
  • SPARQL Parser accepts all Blank Node QNames
  • Long Literals and Escapes in Turtle, N3 and TriG weren't correctly read in some cases
  • Various fixes to Virtuoso support
  • JSON Parser parses Language specifiers correctly
  • Parsing Improvements:
  • Addition of an RDFa Parser
  • Long Literals in Turtle, N3 and TriG which had quotes at the end now parse correctly
  • Both Turtle & N3 Tokenisers refactored to derive from the standard BaseTokeniser class
  • Turtle tokeniser handles escapes better
  • Query Improvements:
  • ARQ function library now automatically registered
  • Optimisation for GRAPH ?g {} pattern
  • SparqlParameterizedString class for dynamically building queries and preventing SPARQL Injection
  • Serialization Improvements:
  • More consistent and correct character escaping
  • HTML Writer for Graphs now writes XHTML+RDFa
  • IHtmlWriter interface provides for customising the CSS classes uses for page elements
  • CSV and TSV writers for SPARQL Results don't write trailing commas/tabs to lines any more
  • Storage Improvements:
  • Improvements Virtuoso support based on feedback from OpenLink software and end users
  • Virtuoso 6 support (see Known Issues)
  • Various fixes for communicating with Stores over RESTful HTTP APIs
  • SparqlConnector allows you to disable local parsing so you can use vendor specific SPARQL extensions in
  • queries

New in dotNetRDF 0.2.0 (Aug 12, 2010)

  • API Improvements/Changes (This release includes many breaking changes from the 0.1.x API)
  • Renamed many classes to better conform to the Microsoft Class Library design guidelines
  • Graph equality supported (may not work for very large/complex Graphs)
  • Result Set equality supported (may not work for very large/complex Result Sets)
  • Bug Fixes:
  • File Loader assigns absolute File URIs
  • Many bug fixes to the SPARQL engine
  • DATATYPE and LANGMATCHES work correctly
  • Certain types of ASK now work correctly
  • = and != operator do value equality on known types rather than term equality
  • Relational operators do improved value relations on known types rather than term ordering
  • Complex OPTIONALs and UNIONs work correctly (Leviathan support is far better than Labyrinth)
  • Turtle Tokeniser
  • Parses complex Language Specifiers correctly
  • Parses boolean constants correctly in all cases
  • TriG Tokeniser now parses long literals correctly in all cases
  • Indexed Triple Collections failed to return Node enumerations as Distinct() enumerations which meant
  • many writers weren't using High Speed mode when they should have done
  • Storage Improvements:
  • Joseki support tested and verified (exact support varies depending on the store the Joseki server exposes)
  • Query Improvements:
  • Various parts of the Labyrinth engine rewritten, improved and bug fixed
  • Support for all mandatory SPARQL 1.1 features in the latest working draft (not all features are supported by Labyrinth)
  • Support for some additional SPARQL extensions
  • Large parts of the XPath function library for strings, numerics and date times now available
  • Support for the ARQ (Jena's SPARQL engine) function library to permit query portability
  • Support for our own Leviathan Function Library which provides a wealth of numeric functions
  • http://www.dotnetrdf.org/leviathan# - RDF description of function library
  • NMAX/NMIN aggregates - numeric maxmimum/minimum
  • MEDIAN and MODE aggregates
  • LET assignment
  • Brand new Leviathan engine which conforms much more closely to the SPARQL specification
  • Algebra based evaluation model
  • Now the default engine for executing queries in-memory SPARQL
  • CSV and TSV Result serializers
  • XSLT serializer
  • Serialization Improvements
  • All serializers are thread safe
  • NTriples writers
  • Fixes to output escaping for some writers to ensure valid syntax is always produced
  • Standardised Node Output
  • URIs containing special characters now get escaped correctly where necessary
  • CSV, TSV and HTML serializers for RDF
  • CSV and TSV serializers for RDF Datasets
  • New QName mapper for serialization ensures correct QNames for all URIs
  • ASP.Net Integration
  • New SchemaHandler for serving RDF schemas
  • New FileHandler for serving single RDF files at fixed URIs e.g. FOAF files
  • SparqlHandler and FileSparqlHandler now support defining Custom Expression Factories

New in dotNetRDF 0.1.3 (Aug 12, 2010)

  • Bug Fixes:
  • Some kinds of Graph which failed to serialize to RDF/XML are now serialized OK
  • Sesame and AllegroGraph connectors now properly initialise the Base URI of the Graph they load into
  • Collection output properly generated by Fast RDF/XML writer
  • Turtle & Notation 3 Parsers no longer have any Blank Node handling issues
  • TriG Parser now handles files containing comments better
  • Storage Improvements:
  • Experimental support for Joseki
  • Change to 4store connector to try and mitigate the high HTTP timeout rate
  • Parsing Improvements
  • Newly rewritten Turtle and Notation 3 parsers are marginally faster and much more maintainable
  • Use of Parser Contexts on several parsers to make them fully Thread Safe
  • Query Improvements:
  • Basic Query optimisation by Triple Pattern reordering within each Graph Pattern
  • Change to a few of the base implementations of functions of Triple Collections so even without full indexing
  • queries over two parts of the Triple should be faster
  • Serialization Improvements:
  • Use of Writer Contexts for various writers to make them fully Thread Safe
  • Eliminated a potential issue with outputting some Blank Nodes

New in dotNetRDF 0.1.2 (Nov 30, 2009)

  • Bug Fixes
  • Error in URI Resolution of QNames in the default namespace when no default namespace is defined (i.e. resolution is against
  • the base URI has been fixed)
  • Long queries passed to a SPARQLRemoteEndpoint get POSTed to the endpoint to avoid an issue with HttpWebRequest
  • Query Improvements
  • Eliminated the duplicate results bug
  • Removed the obsolete constructors from SPARQLResultSet
  • Better encapsulation of the data in a SPARQLResultSet
  • Improved the ISPARQLResultsReader implementations to make them fully thread safe
  • Improved Query Tokeniser
  • Use of Indexing for significantly faster querying
  • Experimental support for Inference
  • All classes derived from TripleStore implement the new IInferencingTripleStore interface
  • Ability to attach Reasoners to SPARQL Endpoints created with the SPARQL Handler
  • Basic RDFS Class Hierarchy and SKOS Concept Hierarchy Reasoners provided
  • Experimental support for SPARQL 1.1 Features (Note that SPARQL 1.1 is still in early working draft stage)
  • Aggregate Functions: AVG, COUNT, MAX, MIN and SUM
  • Projection Expression in SELECT Clauses
  • GROUP BY and HAVING Clauses
  • Storage Improvements
  • Support for native query on Virtuoso
  • Support for 4store
  • Support for AllegroGraph
  • Support for any server that supports the Sesame 2.0 HTTP Protocol
  • Parsing Improvements
  • New FileLoader class can be used to load an RDF Graph/Dataset from a file without instantiating a parser directly
  • Support for additional dataset syntaxes - NQuads and TriX
  • Serialization Improvements
  • FastRDFXMLWriter now generates much nicer RDF/XML syntax at a speed of around 25,000 triples/second
  • Support for serializing to NQuads and TriX
  • Some bug fixes to our internal XML writer
  • TriG writer uses the fast writing algorithm to improve it's output speed
  • ASP.Net Integration Improvements
  • Bug fixes to support running on IIS in non-integrated mode
  • Added a NativeSPARQLHandler which lets you query a Talis/Virtuoso/4store/AllegroGraph/Sesame store from your web application
  • Added a FileSPARQLHandler which lets you query an RDF file or folder of RDF files
  • All SPARQL Handlers now allow you to control the Cache duration
  • Other Improvements
  • Improved NamespaceMapper imports other NamespaceMaps more intelligently
  • New Global Option for controlling Default Compression Level on writers returned by MIMETypesHelper
  • Use of indexing under the hood to make major improvements to
  • New HashTable class used for storage and indexing in various places to give performance boosts

New in dotNetRDF 0.1.1 Re-release (Nov 2, 2009)

  • Bug Fixes
  • New BlankNodeMapper ensures that users can't accidentally define Blank Node IDs which clash with auto-assigned IDs
  • Faster writers don't produce invalid syntax when compression level is set to None
  • NativeNTriplesParser parses simple literal objects correctly

New in dotNetRDF 0.1.1 (Nov 2, 2009)

  • Parsing Improvements
  • Major performance improvements for Parsers thanks to changes in the underyling memory storage of Nodes and Triples
  • Added RDJ/JSON and SPARQL Results JSON Support
  • Added TriG support
  • Added support for parsing raw RDF strings without the data needing to be in a File/Stream
  • Full Unicode Escape Support in all Parsers which use it
  • Serialization Improvements
  • RDFXMLTreeWriter provides a more powerful RDF/XML Writer which can use most of the RDF/XML syntax compressions
  • CompressingTurtleWriter provides a more powerful Turtle Writer which can use all of the Turtle syntax compressions
  • NTriplesWriter now correctly converts non-ASCII characters into Unicode escapes
  • Major improvements in speed to all the NTriples like (NTriples, Turtle and Notation 3) writers and the RDF/JSON writer
  • FastRDFXMLWriter provides a fast RDF/XML writer but currently produces very verbose uncompressed syntax
  • Storage Improvments
  • Improved Database format now provides faster read speeds and significantly improved write speeds depending on usage
  • Support for additional RDF Stores
  • Improved API allows for easy integration of other Stores with the Library
  • Added support for the Talis Platform
  • Added support for Virtuoso Universal Server
  • Added Thread Safe versions of Graph and SQLGraph
  • Improvements to Node & Triple Equality calculation
  • Some minor tweaks to SPARQL implementation
  • Added more SPARQL Result Serializers
  • Better Content Negotation Support
  • Bug Fixes to retrieving RDF and SPARQL Results over HTTP
  • Bug Fixes to URI Resolution
  • Added a simple to configure SPARQLHandler to the Library