<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>drobilla.net - RDF</title><link href="https://drobilla.net/" rel="alternate"/><link href="https://drobilla.net/category/rdf/feed/atom" rel="self"/><id>https://drobilla.net/</id><updated>2026-02-10T18:45:00-05:00</updated><entry><title>Sratom 0.6.22</title><link href="https://drobilla.net/2026/02/10/sratom-0-6-22.html" rel="alternate"/><published>2026-02-10T18:45:00-05:00</published><updated>2026-02-10T18:45:00-05:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2026-02-10:/2026/02/10/sratom-0-6-22.html</id><content type="html">&lt;p&gt;&lt;a href="https://download.drobilla.net/sratom-0.6.22.tar.xz"&gt;Sratom 0.6.22&lt;/a&gt; has been released.  Sratom is a small library for serializing LV2 atoms.  Sratom reads/writes atoms from/to RDF, allowing them to be converted between binary and text or stored in a model.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add clang nullability annotations&lt;/li&gt;
&lt;li&gt;Address new warnings in clang and clang-tidy 21&lt;/li&gt;
&lt;li&gt;Fix documentation build without sphinx_lv2_theme&lt;/li&gt;
&lt;li&gt;Gracefully handle reading vectors with missing childType properties&lt;/li&gt;
&lt;li&gt;Gracefully handle writing vectors with zero childSize properties&lt;/li&gt;
&lt;li&gt;Improve error handling&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="LAD"/><category term="LV2"/><category term="RDF"/><category term="Sratom"/></entry><entry><title>Sord 0.16.22</title><link href="https://drobilla.net/2026/02/10/sord-0-16-22.html" rel="alternate"/><published>2026-02-10T18:43:00-05:00</published><updated>2026-02-10T18:43:00-05:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2026-02-10:/2026/02/10/sord-0-16-22.html</id><content type="html">&lt;p&gt;&lt;a href="https://download.drobilla.net/sord-0.16.22.tar.xz"&gt;Sord 0.16.22&lt;/a&gt; has been released.  Sord is a lightweight C library for storing RDF statements in memory.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add clang nullability annotations&lt;/li&gt;
&lt;li&gt;Address new warnings in clang and clang-tidy 21&lt;/li&gt;
&lt;li&gt;Make more API functions tolerate NULL&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Sord"/></entry><entry><title>Serd 0.32.8</title><link href="https://drobilla.net/2026/02/10/serd-0-32-8.html" rel="alternate"/><published>2026-02-10T18:02:00-05:00</published><updated>2026-02-10T18:02:00-05:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2026-02-10:/2026/02/10/serd-0-32-8.html</id><content type="html">&lt;p&gt;&lt;a href="https://download.drobilla.net/serd-0.32.8.tar.xz"&gt;Serd 0.32.8&lt;/a&gt; has been released.  Serd is a lightweight C library for working with RDF data.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Avoid use of snprintf() when writing&lt;/li&gt;
&lt;li&gt;Fix unbounded reader stack growth when reading NQuads&lt;/li&gt;
&lt;li&gt;Improve reader error handling&lt;/li&gt;
&lt;li&gt;Relax nullability of SerdNode buffer field&lt;/li&gt;
&lt;li&gt;Release reader stack memory on read error&lt;/li&gt;
&lt;li&gt;Strengthen handling of corrupt UTF-8 input&lt;/li&gt;
&lt;li&gt;Support writing all escapes in Turtle and TriG prefixed names&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Serd"/></entry><entry><title>Sratom 0.6.20</title><link href="https://drobilla.net/2025/11/12/sratom-0-6-20.html" rel="alternate"/><published>2025-11-12T19:26:00-05:00</published><updated>2025-11-12T19:26:00-05:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2025-11-12:/2025/11/12/sratom-0-6-20.html</id><content type="html">&lt;p&gt;&lt;a href="https://download.drobilla.net/sratom-0.6.20.tar.xz"&gt;Sratom 0.6.20&lt;/a&gt; has been released.  Sratom is a small library for serializing LV2 atoms.  Sratom reads/writes atoms from/to RDF, allowing them to be converted between binary and text or stored in a model.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Avoid over-use of yielding meson options&lt;/li&gt;
&lt;li&gt;Avoid use of scanf when reading MIDI events&lt;/li&gt;
&lt;li&gt;Fix lint checks&lt;/li&gt;
&lt;li&gt;Fix potential memory error when writing ambiguous relative paths&lt;/li&gt;
&lt;li&gt;Improve code quality&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="LAD"/><category term="LV2"/><category term="RDF"/><category term="Sratom"/></entry><entry><title>Sord 0.16.20</title><link href="https://drobilla.net/2025/11/12/sord-0-16-20.html" rel="alternate"/><published>2025-11-12T19:12:00-05:00</published><updated>2025-11-12T19:12:00-05:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2025-11-12:/2025/11/12/sord-0-16-20.html</id><content type="html">&lt;p&gt;&lt;a href="https://download.drobilla.net/sord-0.16.20.tar.xz"&gt;Sord 0.16.20&lt;/a&gt; has been released.  Sord is a lightweight C library for storing RDF statements in memory.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add header warnings test&lt;/li&gt;
&lt;li&gt;Add missing const qualifiers to API&lt;/li&gt;
&lt;li&gt;Avoid over-use of yielding meson options&lt;/li&gt;
&lt;li&gt;Update man pages&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Sord"/></entry><entry><title>Serd 0.32.6</title><link href="https://drobilla.net/2025/11/12/serd-0-32-6.html" rel="alternate"/><published>2025-11-12T18:54:00-05:00</published><updated>2025-11-12T18:54:00-05:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2025-11-12:/2025/11/12/serd-0-32-6.html</id><content type="html">&lt;p&gt;&lt;a href="https://download.drobilla.net/serd-0.32.6.tar.xz"&gt;Serd 0.32.6&lt;/a&gt; has been released.  Serd is a lightweight C library for working with RDF data.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Avoid over-use of yielding meson options&lt;/li&gt;
&lt;li&gt;Drop graphs when writing Turtle output&lt;/li&gt;
&lt;li&gt;Eliminate recursion in the writer&lt;/li&gt;
&lt;li&gt;Fix handling of bad predicates in anonymous blank nodes&lt;/li&gt;
&lt;li&gt;Fix handling of some invalid EOF cases in lax mode&lt;/li&gt;
&lt;li&gt;Fix indentation of named objects after anonymous objects&lt;/li&gt;
&lt;li&gt;Fix indentation when ending anonymous nodes with many objects&lt;/li&gt;
&lt;li&gt;Fix invalid characters in error messages&lt;/li&gt;
&lt;li&gt;Fix reading numbers with no space before the final dot&lt;/li&gt;
&lt;li&gt;Fix reading prefix names that start with "true." or "false."&lt;/li&gt;
&lt;li&gt;Refuse to write incoherent statements&lt;/li&gt;
&lt;li&gt;Remove project and version number from man page OS field&lt;/li&gt;
&lt;li&gt;Write a blank line between statements and Turtle/TriG directives&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Serd"/></entry><entry><title>Lilv “Object Index” Option Revised</title><link href="https://drobilla.net/2025/11/12/lilv-object-index-option-revised.html" rel="alternate"/><published>2025-11-12T13:58:00-05:00</published><updated>2025-11-12T13:58:00-05:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2025-11-12:/2025/11/12/lilv-object-index-option-revised.html</id><content type="html">&lt;p&gt;My previous post, &lt;a href="https://drobilla.net/2025/09/29/improving-lv2-discovery-performance.html"&gt;“Improving LV2 Discovery Performance”&lt;/a&gt;, described adding an option to &lt;a href="https://drobilla.net/software/lilv/"&gt;lilv&lt;/a&gt; that controls whether an additional index is maintained for loaded LV2 data.
While testing those changes for release, I discovered a few things (like &lt;a href="https://git.open-music-kontrollers.ch/~hp/lv2lint"&gt;lv2lint&lt;/a&gt;) that break without the index, which convinced me that disabling it by default wasn't the right decision.&lt;/p&gt;
&lt;p&gt;So, I'm instead enabling it by default, which avoids this “break by default” situation.
The downside is that hosts will need to add code in order to enjoy the performance improvements.
To make this change as simple as possible, I also made &lt;code&gt;lilv_world_set_option&lt;/code&gt; accept a null value to disable boolean options, so most hosts can simply add this line:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;lilv_world_set_option&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;world&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;LILV_OPTION_OBJECT_INDEX&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;This requires the new version, but the same change can be made without bumping the required version by avoiding the niceties:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;LilvNode&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;false_node&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;lilv_new_bool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;world&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="n"&gt;lilv_world_set_option&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;world&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;http://drobilla.net/ns/lilv#object-index&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;false_node&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="n"&gt;lilv_node_free&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;false_node&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;This will log a warning about the unsupported option on older versions, but otherwise have no effect.&lt;/p&gt;</content><category term="misc"/><category term="Hacking"/><category term="LAD"/><category term="LV2"/><category term="Lilv"/><category term="RDF"/></entry><entry><title>Improving LV2 Discovery Performance</title><link href="https://drobilla.net/2025/09/29/improving-lv2-discovery-performance.html" rel="alternate"/><published>2025-09-29T10:25:00-04:00</published><updated>2025-09-29T10:25:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2025-09-29:/2025/09/29/improving-lv2-discovery-performance.html</id><content type="html">&lt;p&gt;LV2 plugins (and other data, like presets) are discovered by parsing &lt;a href="https://www.w3.org/TR/turtle/"&gt;Turtle&lt;/a&gt; files installed in various bundle directories.
If the host only needs to know &lt;em&gt;which&lt;/em&gt; things are installed, then only &lt;code&gt;manifest.ttl&lt;/code&gt; files need to be loaded.
That takes only a fraction of a second (60 ms on this machine, which has 897 plugins installed), but if the host needs more information (like the plugin's label or what ports it has), then the data files need to be loaded as well, which can take several seconds.
The parser (from &lt;a href="https://drobilla.net/software/serd/"&gt;serd&lt;/a&gt;) is very fast, so the overwhelming majority of this time is spent inserting data into a model.&lt;/p&gt;
&lt;p&gt;I was recently doing some work on &lt;a href="https://drobilla.net/software/lilv/"&gt;lilv&lt;/a&gt; related to discovery, and got sidetracked into investigating how much of this overhead could be eliminated.
Quite a bit, as it turns out, but before explaining how, I'll give a brief summary of the relevant fundamentals so people who don't spend their days in the triple mines can understand what I'm talking about.&lt;/p&gt;
&lt;p&gt;LV2 data is written in the &lt;a href="https://www.w3.org/TR/turtle/"&gt;Turtle&lt;/a&gt; syntax, which can have a lot of structure, but is ultimately just a shorthand for data that is simply a “flat” series of triples.
For example, the abbreviated Turtle&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nv"&gt;&amp;lt;http://example.org/amp&amp;gt;&lt;/span&gt;
    &lt;span class="kt"&gt;a&lt;/span&gt; &lt;span class="nn"&gt;lv2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nt"&gt;Plugin&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nn"&gt;doap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nt"&gt;name&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Amplifier&amp;quot;&lt;/span&gt; &lt;span class="p"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;represents the two triples&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nv"&gt;&amp;lt;http://example.org/amp&amp;gt;&lt;/span&gt; &lt;span class="nn"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nt"&gt;type&lt;/span&gt;  &lt;span class="nn"&gt;lv2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nt"&gt;Plugin&lt;/span&gt; &lt;span class="p"&gt;.&lt;/span&gt;
&lt;span class="nv"&gt;&amp;lt;http://example.org/amp&amp;gt;&lt;/span&gt; &lt;span class="nn"&gt;doap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nt"&gt;name&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Amplifier&amp;quot;&lt;/span&gt; &lt;span class="p"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;which describe a plugin with the name “Amplifier”.&lt;/p&gt;
&lt;p&gt;Two implications of this format are important to understand here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;All data is a set of triples which can be stored in some lexicographical order to be quickly searchable (for example, a set ordered subject-first can be used to quickly find triples that start with a given subject).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;All data can be streamed via a simple “flat” interface (for example a function with three parameters), and is trivial to inspect and/or filter on the fly (much like line-based text in POSIX pipelines).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The data may not be stored as a “literal” ordered set of triples (they're actually &lt;em&gt;quads&lt;/em&gt; in memory for one thing), but this simplified way of thinking about it is good enough for this explanation.&lt;/p&gt;
&lt;p&gt;Which order is best depends on the query.
For example (borrowing a bit of syntax from &lt;a href="https://www.w3.org/TR/sparql11-query/"&gt;SPARQL&lt;/a&gt; where &lt;code&gt;?name&lt;/code&gt; represents a query variable), if the host asks something like “what's the name of this plugin” or&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nl"&gt;&amp;lt;http://example.org/amp&amp;gt;&lt;/span&gt; &lt;span class="nn"&gt;doap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nt"&gt;name&lt;/span&gt; &lt;span class="nv"&gt;?name&lt;/span&gt; &lt;span class="p"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;then it needs to find triples that start with the given subject and predicate (&lt;code&gt;&amp;lt;http://example.org/amp&amp;gt;&lt;/code&gt; and &lt;code&gt;doap:name&lt;/code&gt;) to see what object (&lt;code&gt;?name&lt;/code&gt;) they have.
So, a subject-predicate-object or “SPO” index will work well.
If, however, the host asks something like “which things are plugins” or&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nv"&gt;?plugin&lt;/span&gt; &lt;span class="nn"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nt"&gt;type&lt;/span&gt; &lt;span class="nn"&gt;lv2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nt"&gt;Plugin&lt;/span&gt; &lt;span class="p"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;then an SPO index doesn't help because there's no known subject to search for.
Most queries are like this, with either a subject or object wildcard (querying relatively “fixed” predicates is rare), so lilv has always had both an SPO and OPS index to support them.&lt;/p&gt;
&lt;p&gt;This is convenient, but twice the indexing means roughly twice the overhead.
The SPO index is the natural order used in the syntax, and supports most code (which mainly looks up properties of known things), but the OPS index isn't used so much.
Can it be removed entirely to speed things up?
It &lt;em&gt;is&lt;/em&gt; used for many important things, but conveniently, there's only a few fixed cases of those (like finding plugins as above).
So, we can take advantage of the streaming nature of the data to record this information while it's being read, instead of inserting it into an index only to query it out later.&lt;/p&gt;
&lt;p&gt;To do this in the implementation, I introduced the concept of a “skimmer”.
A skimmer inserts triples into a model as usual, but first “skims” them and records items of interest for later use.
For example, a skimmer checks whether a triple has &lt;code&gt;rdf:type lv2:Plugin&lt;/code&gt;, and if so, records the subject in a result set that stores only plugin URIs.
Some cases are a bit trickier, and actually pulling this off cleanly took quite an overhaul, but details aside, it turns out that this approach can be used to eliminate the OPS index entirely without losing any functionality.&lt;/p&gt;
&lt;p&gt;How much of an improvement does this make?
On this machine, using &lt;code&gt;lv2ls -n&lt;/code&gt; as a crude benchmark, the time goes from 3.11 to 1.72 seconds, or about a 45% improvement.
The memory consumption goes down a bit as well, from (even more crudely) a max-RSS of about 138 to 112 MiB, or about a 19% improvement (everything here is an average of three runs).
The improvement will vary dramatically based on what's installed, for example in some earlier tests with a different configuration I saw drops from around 7 to 4 seconds, but in general, not bad!&lt;/p&gt;
&lt;p&gt;Are there any downsides to this?
Yes, primarily two:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;As with any significant change, there is the possibility of regression.
   Discovery is a little more restricted than before, so although I've done my best to test things, there is a possibility of things not being discovered anymore.
   Usually the fix for this is adding information to the manifest that should have been there anyway.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Though the implementation itself doesn't make queries that require the OPS index, hosts themselves can since lilv provides generic query functions.
   To support this, there's a new boolean option, &lt;code&gt;LILV_OPTION_OBJECT_INDEX&lt;/code&gt;, which can be used to enable or disable the OPS index.
   Since most hosts don't need it, I decided to disable this by default.
   That will be a regression for hosts that do, however, who need to explicitly opt in to the old behaviour by enabling this option.
   A warning is printed if a query will be slow because of the missing index, so it should at least be obvious if this happens.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;These changes are now in the &lt;code&gt;main&lt;/code&gt; branch in git, which will be released soon, probably as version 0.26.0.&lt;/p&gt;</content><category term="misc"/><category term="Hacking"/><category term="LAD"/><category term="LV2"/><category term="Lilv"/><category term="RDF"/></entry><entry><title>Sratom 0.6.18</title><link href="https://drobilla.net/2025/01/19/sratom-0-6-18.html" rel="alternate"/><published>2025-01-19T13:49:00-05:00</published><updated>2025-01-19T13:49:00-05:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2025-01-19:/2025/01/19/sratom-0-6-18.html</id><content type="html">&lt;p&gt;&lt;a href="https://download.drobilla.net/sratom-0.6.18.tar.xz"&gt;Sratom 0.6.18&lt;/a&gt; has been released.  Sratom is a small library for serializing LV2 atoms.  Sratom reads/writes atoms from/to RDF, allowing them to be converted between binary and text or stored in a model.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add lint option with project metadata and code formatting tests&lt;/li&gt;
&lt;li&gt;Avoid snprintf when writing MIDI events&lt;/li&gt;
&lt;li&gt;Enable clang nullability checks&lt;/li&gt;
&lt;li&gt;Fix library current_version on MacOS&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="LAD"/><category term="LV2"/><category term="RDF"/><category term="Sratom"/></entry><entry><title>Sord 0.16.18</title><link href="https://drobilla.net/2025/01/19/sord-0-16-18.html" rel="alternate"/><published>2025-01-19T13:46:00-05:00</published><updated>2025-01-19T13:46:00-05:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2025-01-19:/2025/01/19/sord-0-16-18.html</id><content type="html">&lt;p&gt;&lt;a href="https://download.drobilla.net/sord-0.16.18.tar.xz"&gt;Sord 0.16.18&lt;/a&gt; has been released.  Sord is a lightweight C library for storing RDF statements in memory.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add option to install tool man pages&lt;/li&gt;
&lt;li&gt;Enable clang nullability checks&lt;/li&gt;
&lt;li&gt;Fix build as C with MSVC&lt;/li&gt;
&lt;li&gt;Fix library current_version on MacOS&lt;/li&gt;
&lt;li&gt;Replace more platform-specific code with use of zix&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Sord"/></entry><entry><title>Serd 0.32.4</title><link href="https://drobilla.net/2025/01/19/serd-0-32-4.html" rel="alternate"/><published>2025-01-19T00:17:00-05:00</published><updated>2025-01-19T00:17:00-05:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2025-01-19:/2025/01/19/serd-0-32-4.html</id><content type="html">&lt;p&gt;&lt;a href="https://download.drobilla.net/serd-0.32.4.tar.xz"&gt;Serd 0.32.4&lt;/a&gt; has been released.  Serd is a lightweight C library for working with RDF data.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Clean up enum declarations&lt;/li&gt;
&lt;li&gt;Fix library current_version on MacOS&lt;/li&gt;
&lt;li&gt;Fix overly permissive parsing of syntax names on the command line&lt;/li&gt;
&lt;li&gt;Fix parsing NQuads lines with no space before the final dot&lt;/li&gt;
&lt;li&gt;Fix reading chunks from files without trailing newlines&lt;/li&gt;
&lt;li&gt;Fix rewriting special literals when datatype URIs are prefixed names&lt;/li&gt;
&lt;li&gt;Gracefully handle errors while writing the end of anonymous nodes&lt;/li&gt;
&lt;li&gt;Improve test suite coverage&lt;/li&gt;
&lt;li&gt;Simplify some character classification and comparison code&lt;/li&gt;
&lt;li&gt;Support reading lone lists in lax mode&lt;/li&gt;
&lt;li&gt;Treat out of range unicode characters as errors&lt;/li&gt;
&lt;li&gt;Write blank lines between graphs and statements in TriG&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Serd"/></entry><entry><title>Serd 0.32.2</title><link href="https://drobilla.net/2024/01/23/serd-0-32-2.html" rel="alternate"/><published>2024-01-23T19:32:00-05:00</published><updated>2024-01-23T19:32:00-05:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2024-01-23:/2024/01/23/serd-0-32-2.html</id><content type="html">&lt;p&gt;&lt;a href="https://download.drobilla.net/serd-0.32.2.tar.xz"&gt;Serd 0.32.2&lt;/a&gt; has been released.  Serd is a lightweight C library for working with RDF data.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enable clang nullability checks&lt;/li&gt;
&lt;li&gt;Fix writing empty list objects within blank nodes&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Serd"/></entry><entry><title>Sratom 0.6.16</title><link href="https://drobilla.net/2023/10/22/sratom-0-6-16.html" rel="alternate"/><published>2023-10-22T20:06:00-04:00</published><updated>2023-10-22T20:06:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2023-10-22:/2023/10/22/sratom-0-6-16.html</id><content type="html">&lt;p&gt;&lt;a href="https://download.drobilla.net/sratom-0.6.16.tar.xz"&gt;Sratom 0.6.16&lt;/a&gt; has been released.  Sratom is a small library for serializing LV2 atoms.  Sratom reads/writes atoms from/to RDF, allowing them to be converted between binary and text or stored in a model.  For more information, see &lt;a href="http://drobilla.net/software/sratom"&gt;http://drobilla.net/software/sratom&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Clean up code&lt;/li&gt;
&lt;li&gt;Constrain relative URI references to the base URI&lt;/li&gt;
&lt;li&gt;Fix dependencies in pkg-config file&lt;/li&gt;
&lt;li&gt;Override pkg-config dependency within meson&lt;/li&gt;
&lt;li&gt;Remove junk files from documentation install&lt;/li&gt;
&lt;li&gt;Replace duplicated dox_to_sphinx script with sphinxygen dependency&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="LAD"/><category term="LV2"/><category term="RDF"/><category term="Sratom"/></entry><entry><title>Sord 0.16.16</title><link href="https://drobilla.net/2023/10/22/sord-0-16-16.html" rel="alternate"/><published>2023-10-22T19:59:00-04:00</published><updated>2023-10-22T19:59:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2023-10-22:/2023/10/22/sord-0-16-16.html</id><content type="html">&lt;p&gt;&lt;a href="https://download.drobilla.net/sord-0.16.16.tar.xz"&gt;Sord 0.16.16&lt;/a&gt; has been released.  Sord is a lightweight C library for storing RDF statements in memory. For more information, see &lt;a href="http://drobilla.net/software/sord"&gt;http://drobilla.net/software/sord&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Allow SORD_API to be defined by the user&lt;/li&gt;
&lt;li&gt;Fix command line help interface of sord_validate&lt;/li&gt;
&lt;li&gt;Fix dependencies in pkg-config file&lt;/li&gt;
&lt;li&gt;Override pkg-config dependency within meson&lt;/li&gt;
&lt;li&gt;Port sord_validate to pcre2&lt;/li&gt;
&lt;li&gt;Switch to external zix dependency&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Sord"/></entry><entry><title>Serd 0.32.0</title><link href="https://drobilla.net/2023/10/22/serd-0-32-0.html" rel="alternate"/><published>2023-10-22T19:36:00-04:00</published><updated>2023-10-22T19:36:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2023-10-22:/2023/10/22/serd-0-32-0.html</id><content type="html">&lt;p&gt;&lt;a href="https://download.drobilla.net/serd-0.32.0.tar.xz"&gt;Serd 0.32.0&lt;/a&gt; has been released.  Serd is a lightweight C library for working with RDF data.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add Windows path separator support to serd_node_new_file_uri()&lt;/li&gt;
&lt;li&gt;Add long "help" and "version" options to serdi&lt;/li&gt;
&lt;li&gt;Add options to disable html or singlehtml documentation&lt;/li&gt;
&lt;li&gt;Add serd_reader_skip_until_byte() to public API&lt;/li&gt;
&lt;li&gt;Allow SERD_API to be defined by the user&lt;/li&gt;
&lt;li&gt;Avoid creating test files in the current directory&lt;/li&gt;
&lt;li&gt;Avoid using ASCII grave as a quote&lt;/li&gt;
&lt;li&gt;Check for POSIX features with the build system&lt;/li&gt;
&lt;li&gt;Clean up and improve test suite&lt;/li&gt;
&lt;li&gt;Clean up code&lt;/li&gt;
&lt;li&gt;Fix crash when trying to read chunks without starting&lt;/li&gt;
&lt;li&gt;Fix hang when skipping an error at EOF when lax parsing&lt;/li&gt;
&lt;li&gt;Fix incorrect parsing of strange quote escape patterns&lt;/li&gt;
&lt;li&gt;Fix possible hang when writing nested Turtle lists&lt;/li&gt;
&lt;li&gt;Fix potential memory leaks when a write is aborted&lt;/li&gt;
&lt;li&gt;Fix relative URI creation&lt;/li&gt;
&lt;li&gt;Gracefully handle bad characters in Turtle blank node syntax&lt;/li&gt;
&lt;li&gt;Gracefully handle bad characters in Turtle datatype syntax&lt;/li&gt;
&lt;li&gt;Improve TriG pretty-printing and remove trailing newlines&lt;/li&gt;
&lt;li&gt;Improve pretty-printing of lists and inline subjects&lt;/li&gt;
&lt;li&gt;Improve serdi man page&lt;/li&gt;
&lt;li&gt;Improve writer error handling&lt;/li&gt;
&lt;li&gt;Make URI writing stricter by default&lt;/li&gt;
&lt;li&gt;Make serd_reader_read_chunk() work with NQuads&lt;/li&gt;
&lt;li&gt;Override pkg-config dependency within meson&lt;/li&gt;
&lt;li&gt;Remove junk files from documentation install&lt;/li&gt;
&lt;li&gt;Remove support for writing Turtle named inline nodes extension&lt;/li&gt;
&lt;li&gt;Replace duplicated dox_to_sphinx script with sphinxygen dependency&lt;/li&gt;
&lt;li&gt;Test header for warnings more strictly&lt;/li&gt;
&lt;li&gt;Update standard test suites&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Serd"/></entry><entry><title>Sratom 0.6.14</title><link href="https://drobilla.net/2022/09/09/sratom-0-6-14.html" rel="alternate"/><published>2022-09-09T17:29:00-04:00</published><updated>2022-09-09T17:29:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2022-09-09:/2022/09/09/sratom-0-6-14.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/sratom-0.6.14.tar.xz"&gt;Sratom 0.6.14&lt;/a&gt; has been released.  Sratom is a small library for serializing LV2 atoms.  Sratom reads/writes atoms from/to RDF, allowing them to be converted between binary and text or stored in a model.  For more information, see &lt;a href="http://drobilla.net/software/sratom"&gt;http://drobilla.net/software/sratom&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add project metadata&lt;/li&gt;
&lt;li&gt;Adopt REUSE machine-readable licensing standard&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="LAD"/><category term="LV2"/><category term="RDF"/><category term="Sratom"/></entry><entry><title>Sord 0.16.14</title><link href="https://drobilla.net/2022/09/09/sord-0-16-14.html" rel="alternate"/><published>2022-09-09T03:07:00-04:00</published><updated>2022-09-09T03:07:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2022-09-09:/2022/09/09/sord-0-16-14.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/sord-0.16.14.tar.xz"&gt;Sord 0.16.14&lt;/a&gt; has been released.  Sord is a lightweight C library for storing RDF statements in memory. For more information, see &lt;a href="http://drobilla.net/software/sord"&gt;http://drobilla.net/software/sord&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adopt REUSE machine-readable licensing standard&lt;/li&gt;
&lt;li&gt;Allow programs to be used from subproject&lt;/li&gt;
&lt;li&gt;Fix accidentally exposed internal zix symbols&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Sord"/></entry><entry><title>Serd 0.30.16</title><link href="https://drobilla.net/2022/09/09/serd-0-30-16.html" rel="alternate"/><published>2022-09-09T03:06:00-04:00</published><updated>2022-09-09T03:06:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2022-09-09:/2022/09/09/serd-0-30-16.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/serd-0.30.16.tar.xz"&gt;Serd 0.30.16&lt;/a&gt; has been released.  Serd is a lightweight C library for working with RDF data.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add SERD_STATIC to pkg-config Cflags for static-only builds&lt;/li&gt;
&lt;li&gt;Adopt REUSE machine-readable licensing standard&lt;/li&gt;
&lt;li&gt;Allow programs to be used from subproject&lt;/li&gt;
&lt;li&gt;Fix spelling mistake in serdi man page&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Serd"/></entry><entry><title>Sratom 0.6.12</title><link href="https://drobilla.net/2022/07/19/sratom-0-6-12.html" rel="alternate"/><published>2022-07-19T01:13:00-04:00</published><updated>2022-07-19T01:13:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2022-07-19:/2022/07/19/sratom-0-6-12.html</id><content type="html">&lt;p&gt;&lt;a href="https://download.drobilla.net/sratom-0.6.12.tar.xz"&gt;Sratom 0.6.12&lt;/a&gt; has been released.  Sratom is a small library for serializing LV2 atoms.  Sratom reads/writes atoms from/to RDF, allowing them to be converted between binary and text or stored in a model.  For more information, see &lt;a href="http://drobilla.net/software/sratom"&gt;http://drobilla.net/software/sratom&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Switch to meson build system&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="LAD"/><category term="LV2"/><category term="RDF"/><category term="Sratom"/></entry><entry><title>Sord 0.16.12</title><link href="https://drobilla.net/2022/07/17/sord-0-16-12.html" rel="alternate"/><published>2022-07-17T21:22:00-04:00</published><updated>2022-07-17T21:22:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2022-07-17:/2022/07/17/sord-0-16-12.html</id><content type="html">&lt;p&gt;&lt;a href="https://download.drobilla.net/sord-0.16.12.tar.xz"&gt;Sord 0.16.12&lt;/a&gt; has been released.  Sord is a lightweight C library for storing RDF statements in memory. For more information, see &lt;a href="http://drobilla.net/software/sord"&gt;http://drobilla.net/software/sord&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix various warnings&lt;/li&gt;
&lt;li&gt;Switch to meson build system&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Sord"/></entry><entry><title>Serd 0.30.14</title><link href="https://drobilla.net/2022/07/10/serd-0-30-14.html" rel="alternate"/><published>2022-07-10T16:58:00-04:00</published><updated>2022-07-10T16:58:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2022-07-10:/2022/07/10/serd-0-30-14.html</id><content type="html">&lt;p&gt;&lt;a href="https://download.drobilla.net/serd-0.30.14.tar.xz"&gt;Serd 0.30.14&lt;/a&gt; has been released.  Serd is a lightweight C library for working with RDF data.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix memory consumption when reading documents&lt;/li&gt;
&lt;li&gt;Switch to Meson build system&lt;/li&gt;
&lt;li&gt;Update README and project metadata&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Serd"/></entry><entry><title>Sratom 0.6.10</title><link href="https://drobilla.net/2022/05/26/sratom-0-6-10.html" rel="alternate"/><published>2022-05-26T23:27:00-04:00</published><updated>2022-05-26T23:27:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2022-05-26:/2022/05/26/sratom-0-6-10.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/sratom-0.6.10.tar.bz2"&gt;Sratom 0.6.10&lt;/a&gt; has been released.  Sratom is a small library for serialising LV2 atoms to and from RDF, for converting between binary and text or storing in a model.  For more information, see &lt;a href="http://drobilla.net/software/sratom"&gt;http://drobilla.net/software/sratom&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix documentation installation directory&lt;/li&gt;
&lt;li&gt;Fix potential blank node ID truncation&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="LAD"/><category term="LV2"/><category term="RDF"/><category term="Sratom"/></entry><entry><title>Sord 0.16.10</title><link href="https://drobilla.net/2022/05/26/sord-0-16-10.html" rel="alternate"/><published>2022-05-26T23:22:00-04:00</published><updated>2022-05-26T23:22:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2022-05-26:/2022/05/26/sord-0-16-10.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/sord-0.16.10.tar.bz2"&gt;Sord 0.16.10&lt;/a&gt; has been released.  Sord is a lightweight C library for storing RDF statements in memory. For more information, see &lt;a href="http://drobilla.net/software/sord"&gt;http://drobilla.net/software/sord&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix Windows build&lt;/li&gt;
&lt;li&gt;Fix potential crash or incorrectness issue with GCC 10 again&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Sord"/></entry><entry><title>Serd 0.30.12</title><link href="https://drobilla.net/2022/05/26/serd-0-30-12.html" rel="alternate"/><published>2022-05-26T22:47:00-04:00</published><updated>2022-05-26T22:47:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2022-05-26:/2022/05/26/serd-0-30-12.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/serd-0.30.12.tar.bz2"&gt;Serd 0.30.12&lt;/a&gt; has been released.  Serd is a lightweight C library for RDF syntax which supports reading and writing &lt;a href="https://www.w3.org/TR/turtle/"&gt;Turtle&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/trig/"&gt;TriG&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/n-triples/"&gt;NTriples&lt;/a&gt;, and &lt;a href="https://www.w3.org/TR/n-quads/"&gt;NQuads&lt;/a&gt;.  Serd is suitable for performance-critical or resource-limited applications, such as serialising very large data sets or embedded systems.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix warnings and build issues with clang 13 and VS 2019&lt;/li&gt;
&lt;li&gt;Fix writing long literals with triple quotes&lt;/li&gt;
&lt;li&gt;Improve documentation style&lt;/li&gt;
&lt;li&gt;Support combining several BSD-style command line flags in serdi&lt;/li&gt;
&lt;li&gt;Write statements with invalid URI characters in lax mode&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Serd"/></entry><entry><title>Serd 0.30.10</title><link href="https://drobilla.net/2021/01/20/serd-0-30-10.html" rel="alternate"/><published>2021-01-20T15:55:00-05:00</published><updated>2021-01-20T15:55:00-05:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2021-01-20:/2021/01/20/serd-0-30-10.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/serd-0.30.10.tar.bz2"&gt;Serd 0.30.10&lt;/a&gt; has been released.  Serd is a lightweight C library for RDF syntax which supports reading and writing &lt;a href="https://www.w3.org/TR/turtle/"&gt;Turtle&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/trig/"&gt;TriG&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/n-triples/"&gt;NTriples&lt;/a&gt;, and &lt;a href="https://www.w3.org/TR/n-quads/"&gt;NQuads&lt;/a&gt;.  Serd is suitable for performance-critical or resource-limited applications, such as serialising very large data sets or embedded systems.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add fallback configuration if documentation theme is unavailable&lt;/li&gt;
&lt;li&gt;Fix SERD_DISABLE_DEPRECATED&lt;/li&gt;
&lt;li&gt;Fix building for older MacOS versions on newer MacOS&lt;/li&gt;
&lt;li&gt;Fix documentation installation directory&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Serd"/></entry><entry><title>Sratom 0.6.8</title><link href="https://drobilla.net/2021/01/07/sratom-0-6-8.html" rel="alternate"/><published>2021-01-07T21:36:00-05:00</published><updated>2021-01-07T21:36:00-05:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2021-01-07:/2021/01/07/sratom-0-6-8.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/sratom-0.6.8.tar.bz2"&gt;Sratom 0.6.8&lt;/a&gt; has been released.  Sratom is a small library for serialising LV2 atoms to and from RDF, for converting between binary and text or storing in a model.  For more information, see &lt;a href="http://drobilla.net/software/sratom"&gt;http://drobilla.net/software/sratom&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix potential null pointer dereference&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="LAD"/><category term="LV2"/><category term="RDF"/><category term="Sratom"/></entry><entry><title>Sord 0.16.8</title><link href="https://drobilla.net/2021/01/07/sord-0-16-8.html" rel="alternate"/><published>2021-01-07T21:33:00-05:00</published><updated>2021-01-07T21:33:00-05:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2021-01-07:/2021/01/07/sord-0-16-8.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/sord-0.16.8.tar.bz2"&gt;Sord 0.16.8&lt;/a&gt; has been released.  Sord is a lightweight C library for storing RDF statements in memory. For more information, see &lt;a href="http://drobilla.net/software/sord"&gt;http://drobilla.net/software/sord&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Clean up code&lt;/li&gt;
&lt;li&gt;Fix potential undefined behavior&lt;/li&gt;
&lt;li&gt;Fix potentially incorrect search results&lt;/li&gt;
&lt;li&gt;Remove the need for a generated configuration header&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Sord"/></entry><entry><title>Serd 0.30.8</title><link href="https://drobilla.net/2021/01/07/serd-0-30-8.html" rel="alternate"/><published>2021-01-07T21:19:00-05:00</published><updated>2021-01-07T21:19:00-05:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2021-01-07:/2021/01/07/serd-0-30-8.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/serd-0.30.8.tar.bz2"&gt;Serd 0.30.8&lt;/a&gt; has been released.  Serd is a lightweight C library for RDF syntax which supports reading and writing &lt;a href="https://www.w3.org/TR/turtle/"&gt;Turtle&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/trig/"&gt;TriG&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/n-triples/"&gt;NTriples&lt;/a&gt;, and &lt;a href="https://www.w3.org/TR/n-quads/"&gt;NQuads&lt;/a&gt;.  Serd is suitable for performance-critical or resource-limited applications, such as serialising very large data sets or embedded systems.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Deprecate serd_uri_to_path()&lt;/li&gt;
&lt;li&gt;Don't install API man pages&lt;/li&gt;
&lt;li&gt;Fix potential memory error when serialising URIs&lt;/li&gt;
&lt;li&gt;Move headers to an include directory&lt;/li&gt;
&lt;li&gt;Refuse to write relative URI references to NTriples&lt;/li&gt;
&lt;li&gt;Remove the need for a generated configuration header&lt;/li&gt;
&lt;li&gt;Remove use of C character class functions that may use locale&lt;/li&gt;
&lt;li&gt;Split up and reorganize unit tests&lt;/li&gt;
&lt;li&gt;Use aligned allocation via C11 or Windows API where possible&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Serd"/></entry><entry><title>Sratom 0.6.6</title><link href="https://drobilla.net/2020/09/27/sratom-0-6-6.html" rel="alternate"/><published>2020-09-27T15:18:00-04:00</published><updated>2020-09-27T15:18:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2020-09-27:/2020/09/27/sratom-0-6-6.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/sratom-0.6.6.tar.bz2"&gt;Sratom 0.6.6&lt;/a&gt; has been released.  Sratom is a small library for serialising LV2 atoms to and from RDF, for converting between binary and text or storing in a model.  For more information, see &lt;a href="http://drobilla.net/software/sratom"&gt;http://drobilla.net/software/sratom&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix various minor warnings and other code quality issues&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="LAD"/><category term="LV2"/><category term="RDF"/><category term="Sratom"/></entry><entry><title>Sord 0.16.6</title><link href="https://drobilla.net/2020/09/27/sord-0-16-6.html" rel="alternate"/><published>2020-09-27T11:08:00-04:00</published><updated>2020-09-27T11:08:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2020-09-27:/2020/09/27/sord-0-16-6.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/sord-0.16.6.tar.bz2"&gt;Sord 0.16.6&lt;/a&gt; has been released.  Sord is a lightweight C library for storing RDF statements in memory. For more information, see &lt;a href="http://drobilla.net/software/sord"&gt;http://drobilla.net/software/sord&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix potential crash or incorrectness issues with GCC 10&lt;/li&gt;
&lt;li&gt;Fix various minor warnings and other code quality issues&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Sord"/></entry><entry><title>Serd 0.30.6</title><link href="https://drobilla.net/2020/09/27/serd-0-30-6.html" rel="alternate"/><published>2020-09-27T10:51:00-04:00</published><updated>2020-09-27T10:51:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2020-09-27:/2020/09/27/serd-0-30-6.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/serd-0.30.6.tar.bz2"&gt;Serd 0.30.6&lt;/a&gt; has been released.  Serd is a lightweight C library for RDF syntax which supports reading and writing &lt;a href="https://www.w3.org/TR/turtle/"&gt;Turtle&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/trig/"&gt;TriG&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/n-triples/"&gt;NTriples&lt;/a&gt;, and &lt;a href="https://www.w3.org/TR/n-quads/"&gt;NQuads&lt;/a&gt;.  Serd is suitable for performance-critical or resource-limited applications, such as serialising very large data sets or embedded systems.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix various minor warnings and other code quality issues&lt;/li&gt;
&lt;li&gt;Improve reader error handling&lt;/li&gt;
&lt;li&gt;Make all free functions tolerant of NULL&lt;/li&gt;
&lt;li&gt;Parse prefixed names more strictly&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Serd"/></entry><entry><title>Serd 0.30.4</title><link href="https://drobilla.net/2020/04/26/serd-0-30-4.html" rel="alternate"/><published>2020-04-26T16:04:00-04:00</published><updated>2020-04-26T16:04:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2020-04-26:/2020/04/26/serd-0-30-4.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/serd-0.30.4.tar.bz2"&gt;Serd 0.30.4&lt;/a&gt; has been released.  Serd is a lightweight C library for RDF syntax which supports reading and writing &lt;a href="https://www.w3.org/TR/turtle/"&gt;Turtle&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/trig/"&gt;TriG&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/n-triples/"&gt;NTriples&lt;/a&gt;, and &lt;a href="https://www.w3.org/TR/n-quads/"&gt;NQuads&lt;/a&gt;.  Serd is suitable for performance-critical or resource-limited applications, such as serialising very large data sets or embedded systems.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix EOF handling while reading in bulk or from strings&lt;/li&gt;
&lt;li&gt;Fix lax handling of string errors&lt;/li&gt;
&lt;li&gt;Fix reading from a null-delimited socket&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Serd"/></entry><entry><title>Sord 0.16.4</title><link href="https://drobilla.net/2019/11/10/sord-0-16-4.html" rel="alternate"/><published>2019-11-10T21:26:00-05:00</published><updated>2019-11-10T21:26:00-05:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2019-11-10:/2019/11/10/sord-0-16-4.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/sord-0.16.4.tar.bz2"&gt;Sord 0.16.4&lt;/a&gt; has been released.  Sord is a lightweight C library for storing RDF statements in memory. For more information, see &lt;a href="http://drobilla.net/software/sord"&gt;http://drobilla.net/software/sord&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Update build system&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Sord"/></entry><entry><title>Sratom 0.6.4</title><link href="https://drobilla.net/2019/11/10/sratom-0-6-4.html" rel="alternate"/><published>2019-11-10T21:20:00-05:00</published><updated>2019-11-10T21:20:00-05:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2019-11-10:/2019/11/10/sratom-0-6-4.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/sratom-0.6.4.tar.bz2"&gt;Sratom 0.6.4&lt;/a&gt; has been released.  Sratom is a small library for serialising LV2 atoms to and from RDF, for converting between binary and text or storing in a model.  For more information, see &lt;a href="http://drobilla.net/software/sratom"&gt;http://drobilla.net/software/sratom&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Make sratom_free() safe to call on NULL&lt;/li&gt;
&lt;li&gt;Various minor code cleanups&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="LAD"/><category term="LV2"/><category term="RDF"/><category term="Sratom"/></entry><entry><title>Serd 0.30.2</title><link href="https://drobilla.net/2019/10/20/serd-0-30-2.html" rel="alternate"/><published>2019-10-20T22:28:00-04:00</published><updated>2019-10-20T22:28:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2019-10-20:/2019/10/20/serd-0-30-2.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/serd-0.30.2.tar.bz2"&gt;Serd 0.30.2&lt;/a&gt; has been released.  Serd is a lightweight C library for RDF syntax which supports reading and writing &lt;a href="https://www.w3.org/TR/turtle/"&gt;Turtle&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/trig/"&gt;TriG&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/n-triples/"&gt;NTriples&lt;/a&gt;, and &lt;a href="https://www.w3.org/TR/n-quads/"&gt;NQuads&lt;/a&gt;.  Serd is suitable for performance-critical or resource-limited applications, such as serialising very large data sets or embedded systems.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix GCC 4 build&lt;/li&gt;
&lt;li&gt;Fix colliding blank nodes when parsing TriG&lt;/li&gt;
&lt;li&gt;Fix missing parse error messages&lt;/li&gt;
&lt;li&gt;Fix parsing "a" abbreviation without padding whitespace&lt;/li&gt;
&lt;li&gt;Fix parsing TriG graphs with several squashed trailing dots&lt;/li&gt;
&lt;li&gt;Fix resolving some URIs against base URIs with no trailing slash&lt;/li&gt;
&lt;li&gt;Improve build system and CI integration&lt;/li&gt;
&lt;li&gt;Improve documentation&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Serd"/></entry><entry><title>Sratom 0.6.2</title><link href="https://drobilla.net/2018/07/22/sratom-0-6-2.html" rel="alternate"/><published>2018-07-22T18:48:00-04:00</published><updated>2018-07-22T18:48:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2018-07-22:/2018/07/22/sratom-0-6-2.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/sratom-0.6.2.tar.bz2"&gt;Sratom 0.6.2&lt;/a&gt; has been released.  Sratom is a small library for serialising LV2 atoms to and from RDF, for converting between binary and text or storing in a model.  For more information, see &lt;a href="http://drobilla.net/software/sratom"&gt;http://drobilla.net/software/sratom&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Various minor code cleanups&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="LAD"/><category term="LV2"/><category term="RDF"/><category term="Sratom"/></entry><entry><title>Sord 0.16.2</title><link href="https://drobilla.net/2018/07/22/sord-0-16-2.html" rel="alternate"/><published>2018-07-22T18:38:00-04:00</published><updated>2018-07-22T18:38:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2018-07-22:/2018/07/22/sord-0-16-2.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/sord-0.16.2.tar.bz2"&gt;Sord 0.16.2&lt;/a&gt; has been released.  Sord is a lightweight C library for storing RDF statements in memory. For more information, see &lt;a href="http://drobilla.net/software/sord"&gt;http://drobilla.net/software/sord&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;sord_validate: Add support for maximum cardinality&lt;/li&gt;
&lt;li&gt;sord_validate: Fix restriction count reporting&lt;/li&gt;
&lt;li&gt;sord_validate: Only report functional / inverse functional property errors if the subjects / objects are not blank&lt;/li&gt;
&lt;li&gt;sord_validate: Use consistent error format&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Sord"/></entry><entry><title>Serd 0.30.0</title><link href="https://drobilla.net/2018/07/22/serd-0-30-0.html" rel="alternate"/><published>2018-07-22T18:34:00-04:00</published><updated>2018-07-22T18:34:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2018-07-22:/2018/07/22/serd-0-30-0.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/serd-0.30.0.tar.bz2"&gt;Serd 0.30.0&lt;/a&gt; has been released.  Serd is a lightweight C library for RDF syntax which supports reading and writing &lt;a href="https://www.w3.org/TR/turtle/"&gt;Turtle&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/trig/"&gt;TriG&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/n-triples/"&gt;NTriples&lt;/a&gt;, and &lt;a href="https://www.w3.org/TR/n-quads/"&gt;NQuads&lt;/a&gt;.  Serd is suitable for performance-critical or resource-limited applications, such as serialising very large data sets or embedded systems.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add NTriples test suite&lt;/li&gt;
&lt;li&gt;Add basic error tolerant parsing for line-based formats&lt;/li&gt;
&lt;li&gt;Add serd_free for freeing memory allocated by serd&lt;/li&gt;
&lt;li&gt;Add serdi option to write ASCII output&lt;/li&gt;
&lt;li&gt;Clarify errors returned by serd_env_expand()&lt;/li&gt;
&lt;li&gt;Clean up testing code&lt;/li&gt;
&lt;li&gt;Fix building with MSVC&lt;/li&gt;
&lt;li&gt;Fix length of base64 encoded nodes&lt;/li&gt;
&lt;li&gt;Fix parsing local names that end with escaped dots&lt;/li&gt;
&lt;li&gt;Fix reported error when reading statements with only a blank node&lt;/li&gt;
&lt;li&gt;Improve relative URI serialisation&lt;/li&gt;
&lt;li&gt;Make serdi guess input syntax from extension if unspecified&lt;/li&gt;
&lt;li&gt;Make serdi syntax options case-insensitive&lt;/li&gt;
&lt;li&gt;Report errors for all failing test cases&lt;/li&gt;
&lt;li&gt;Support strict parsing of prefixed names&lt;/li&gt;
&lt;li&gt;Upgrade to waf 2.0.9 and autowaf a328983&lt;/li&gt;
&lt;li&gt;Use more efficient stack allocation and growth policies&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Serd"/></entry><entry><title>Serd 0.28.0</title><link href="https://drobilla.net/2017/07/21/serd-0-28-0.html" rel="alternate"/><published>2017-07-21T06:28:00-04:00</published><updated>2017-07-21T06:28:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2017-07-21:/2017/07/21/serd-0-28-0.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/serd-0.28.0.tar.bz2"&gt;Serd 0.28.0&lt;/a&gt; has been released.  Serd is a lightweight C library for RDF syntax which supports reading and writing &lt;a href="https://www.w3.org/TR/turtle/"&gt;Turtle&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/trig/"&gt;TriG&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/n-triples/"&gt;NTriples&lt;/a&gt;, and &lt;a href="https://www.w3.org/TR/n-quads/"&gt;NQuads&lt;/a&gt;.  Serd is suitable for performance-critical or resource-limited applications, such as serialising very large data sets or embedded systems.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add serd_node_from_substring()&lt;/li&gt;
&lt;li&gt;Add support for reading from a user provided callback&lt;/li&gt;
&lt;li&gt;Fix hangs when reading corrupt UTF-8&lt;/li&gt;
&lt;li&gt;Fix parsing of hex escapes in file URIs (thanks Johannes Mueller)&lt;/li&gt;
&lt;li&gt;Fix strict parsing of abolute URI schemes&lt;/li&gt;
&lt;li&gt;Gracefully handle applications that write corrupt UTF-8&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Serd"/></entry><entry><title>Serd 0.26.0</title><link href="https://drobilla.net/2017/01/10/serd-0-26-0.html" rel="alternate"/><published>2017-01-10T01:10:00-05:00</published><updated>2017-01-10T01:10:00-05:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2017-01-10:/2017/01/10/serd-0-26-0.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/serd-0.26.0.tar.bz2"&gt;Serd 0.26.0&lt;/a&gt; has been released.  Serd is a lightweight C library for RDF syntax which supports reading and writing &lt;a href="https://www.w3.org/TR/turtle/"&gt;Turtle&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/trig/"&gt;TriG&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/n-triples/"&gt;NTriples&lt;/a&gt;, and &lt;a href="https://www.w3.org/TR/n-quads/"&gt;NQuads&lt;/a&gt;.  Serd is suitable for performance-critical or resource-limited applications, such as serialising very large data sets or embedded systems.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add support for TriG and NQuads&lt;/li&gt;
&lt;li&gt;Add support for braindead SPARQL PREFIX and BASE directives&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Serd"/></entry><entry><title>Sratom 0.6.0</title><link href="https://drobilla.net/2016/09/20/sratom-0-6-0.html" rel="alternate"/><published>2016-09-20T02:25:00-04:00</published><updated>2016-09-20T02:25:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2016-09-20:/2016/09/20/sratom-0-6-0.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/sratom-0.6.0.tar.bz2"&gt;Sratom 0.6.0&lt;/a&gt; has been released.  Sratom is a small library for serialising LV2 atoms to and from RDF, for converting between binary and text or storing in a model.  For more information, see &lt;a href="http://drobilla.net/software/sratom"&gt;http://drobilla.net/software/sratom&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add sratom_set_env() for setting prefixes&lt;/li&gt;
&lt;li&gt;Fix padding of constructed vectors (thanks Hanspeter Portner)&lt;/li&gt;
&lt;li&gt;Fix warnings when building with ISO C++ compilers&lt;/li&gt;
&lt;li&gt;Support round-trip serialisation of relative paths&lt;/li&gt;
&lt;li&gt;Support sequences with beat time stamps&lt;/li&gt;
&lt;li&gt;Upgrade to waf 1.8.14&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="LAD"/><category term="LV2"/><category term="RDF"/><category term="Sratom"/></entry><entry><title>Sord 0.16.0</title><link href="https://drobilla.net/2016/09/20/sord-0-16-0.html" rel="alternate"/><published>2016-09-20T02:23:00-04:00</published><updated>2016-09-20T02:23:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2016-09-20:/2016/09/20/sord-0-16-0.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/sord-0.16.0.tar.bz2"&gt;Sord 0.16.0&lt;/a&gt; has been released.  Sord is a lightweight C library for storing RDF statements in memory. For more information, see &lt;a href="http://drobilla.net/software/sord"&gt;http://drobilla.net/software/sord&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add sord_node_get_string_measured() to get both byte and character counts&lt;/li&gt;
&lt;li&gt;Fix construction and comparison of URIs with UTF-8 characters&lt;/li&gt;
&lt;li&gt;Fix documentation generation&lt;/li&gt;
&lt;li&gt;Make sord_node_get_counted return byte count, and clarify documentation&lt;/li&gt;
&lt;li&gt;Return error from sord_inserter_write_statement() if a node can not be written (e.g. undefined prefix)&lt;/li&gt;
&lt;li&gt;Safely return NULL from sord_iter_get() for end iterators&lt;/li&gt;
&lt;li&gt;sord_validate: Do proper numeric comparison for propery bounds checking&lt;/li&gt;
&lt;li&gt;sord_validate: Tolerate xsd:decimal literals for double and float properties if literals match pattern&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Sord"/></entry><entry><title>Serd 0.24.0</title><link href="https://drobilla.net/2016/09/20/serd-0-24-0.html" rel="alternate"/><published>2016-09-20T02:21:00-04:00</published><updated>2016-09-20T02:21:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2016-09-20:/2016/09/20/serd-0-24-0.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/serd-0.24.0.tar.bz2"&gt;Serd 0.24.0&lt;/a&gt; has been released.  Serd is a lightweight C library for RDF syntax which supports reading and writing &lt;a href="https://www.w3.org/TR/turtle/"&gt;Turtle&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/trig/"&gt;TriG&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/n-triples/"&gt;NTriples&lt;/a&gt;, and &lt;a href="https://www.w3.org/TR/n-quads/"&gt;NQuads&lt;/a&gt;.  Serd is suitable for performance-critical or resource-limited applications, such as serialising very large data sets or embedded systems.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add serd_node_new_relative_uri()&lt;/li&gt;
&lt;li&gt;Fix construction and comparison of URIs with UTF-8 characters&lt;/li&gt;
&lt;li&gt;Fix documentation generation&lt;/li&gt;
&lt;li&gt;Fix potential out of bounds read&lt;/li&gt;
&lt;li&gt;Fix unaligned memory access, undefined behaviour which breaks on ARM&lt;/li&gt;
&lt;li&gt;Report I/O errors with message and return appropriate status code&lt;/li&gt;
&lt;li&gt;Report missing statement separator errors&lt;/li&gt;
&lt;li&gt;Update serdi man page&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Serd"/></entry><entry><title>Sord 0.14.0</title><link href="https://drobilla.net/2015/10/08/sord-0-14-0.html" rel="alternate"/><published>2015-10-08T19:37:00-04:00</published><updated>2015-10-08T19:37:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2015-10-08:/2015/10/08/sord-0-14-0.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/sord-0.14.0.tar.bz2"&gt;Sord 0.14.0&lt;/a&gt; has been released.  Sord is a lightweight C library for storing RDF statements in memory. For more information, see &lt;a href="http://drobilla.net/software/sord"&gt;http://drobilla.net/software/sord&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add sord_erase() for erasing statements via an iterator&lt;/li&gt;
&lt;li&gt;Fix bugs with stores that contain both graphs and default graph statements&lt;/li&gt;
&lt;li&gt;Fix compilation on compilers that do not support -pthread flag&lt;/li&gt;
&lt;li&gt;Fix crash caused by multiple deletion of datatype nodes&lt;/li&gt;
&lt;li&gt;Fix minor memory leak in sordi&lt;/li&gt;
&lt;li&gt;Fix using sordi with stdin&lt;/li&gt;
&lt;li&gt;Improve test coverage&lt;/li&gt;
&lt;li&gt;Reduce memory usage and increase performance with a better data structure&lt;/li&gt;
&lt;li&gt;Show sordi errors in standard format&lt;/li&gt;
&lt;li&gt;This release does not break the ABI, but the semantics of iterators has changed: any modification to a model invalidates iterators on that model&lt;/li&gt;
&lt;li&gt;Upgrade to waf 1.8.14&lt;/li&gt;
&lt;li&gt;sord_validate: More extensive validation, including cardinality, PlainLiteral, and someValuesFrom restrictions.&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Sord"/></entry><entry><title>Serd 0.22.0</title><link href="https://drobilla.net/2015/10/08/serd-0-22-0.html" rel="alternate"/><published>2015-10-08T19:34:00-04:00</published><updated>2015-10-08T19:34:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2015-10-08:/2015/10/08/serd-0-22-0.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/serd-0.22.0.tar.bz2"&gt;Serd 0.22.0&lt;/a&gt; has been released.  Serd is a lightweight C library for RDF syntax which supports reading and writing &lt;a href="https://www.w3.org/TR/turtle/"&gt;Turtle&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/trig/"&gt;TriG&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/n-triples/"&gt;NTriples&lt;/a&gt;, and &lt;a href="https://www.w3.org/TR/n-quads/"&gt;NQuads&lt;/a&gt;.  Serd is suitable for performance-critical or resource-limited applications, such as serialising very large data sets or embedded systems.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add serd_reader_set_strict() and -l (lax) option to serdi to tolerate parsing URIs with escaped characters&lt;/li&gt;
&lt;li&gt;Add support for Turtle named inline nodes extension&lt;/li&gt;
&lt;li&gt;Fix clash resolution when a blank node ID prefix is set&lt;/li&gt;
&lt;li&gt;Fix reading statements ending with a blank then dot with no space&lt;/li&gt;
&lt;li&gt;Fix serd_reader_read_file() for URIs with escaped characters (spaces)&lt;/li&gt;
&lt;li&gt;Fix serializing fractional decimals that would round up&lt;/li&gt;
&lt;li&gt;Fix warnings when building with ISO C++ compilers&lt;/li&gt;
&lt;li&gt;Remove dependence on fmax() to avoid portability issues&lt;/li&gt;
&lt;li&gt;Report errors for invalid IRI characters and missing terminators&lt;/li&gt;
&lt;li&gt;Show serdi errors in standard format&lt;/li&gt;
&lt;li&gt;Upgrade to waf 1.8.14&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Serd"/></entry><entry><title>Sratom 0.4.6</title><link href="https://drobilla.net/2014/08/08/sratom-0-4-6.html" rel="alternate"/><published>2014-08-08T22:14:00-04:00</published><updated>2014-08-08T22:14:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2014-08-08:/2014/08/08/sratom-0-4-6.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/sratom-0.4.6.tar.bz2"&gt;Sratom 0.4.6&lt;/a&gt; has been released.  Sratom is a small library for serialising LV2 atoms to and from RDF, for converting between binary and text or storing in a model.  For more information, see &lt;a href="http://drobilla.net/software/sratom"&gt;http://drobilla.net/software/sratom&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Don't set eg prefix in sratom_to_turtle&lt;/li&gt;
&lt;li&gt;Update for latest LV2 Atom Object simplification&lt;/li&gt;
&lt;li&gt;Upgrade to waf 1.7.16&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="LAD"/><category term="LV2"/><category term="RDF"/><category term="Sratom"/></entry><entry><title>Sord 0.12.2</title><link href="https://drobilla.net/2014/08/08/sord-0-12-2.html" rel="alternate"/><published>2014-08-08T22:03:00-04:00</published><updated>2014-08-08T22:03:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2014-08-08:/2014/08/08/sord-0-12-2.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/sord-0.12.2.tar.bz2"&gt;Sord 0.12.2&lt;/a&gt; has been released.  Sord is a lightweight C library for storing RDF statements in memory. For more information, see &lt;a href="http://drobilla.net/software/sord"&gt;http://drobilla.net/software/sord&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix iteration over an entire graph (* * * graph)&lt;/li&gt;
&lt;li&gt;Update to waf 1.7.16&lt;/li&gt;
&lt;li&gt;sordmm.hpp: Remove unused members&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Sord"/></entry><entry><title>Serd 0.20.0</title><link href="https://drobilla.net/2014/08/08/serd-0-20-0.html" rel="alternate"/><published>2014-08-08T22:02:00-04:00</published><updated>2014-08-08T22:02:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2014-08-08:/2014/08/08/serd-0-20-0.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/serd-0.20.0.tar.bz2"&gt;Serd 0.20.0&lt;/a&gt; has been released.  Serd is a lightweight C library for RDF syntax which supports reading and writing &lt;a href="https://www.w3.org/TR/turtle/"&gt;Turtle&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/trig/"&gt;TriG&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/n-triples/"&gt;NTriples&lt;/a&gt;, and &lt;a href="https://www.w3.org/TR/n-quads/"&gt;NQuads&lt;/a&gt;.  Serd is suitable for performance-critical or resource-limited applications, such as serialising very large data sets or embedded systems.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add -lm to pkg-config libs&lt;/li&gt;
&lt;li&gt;Correctly handle posix_memalign failure&lt;/li&gt;
&lt;li&gt;Don't write xsd:decimal literals to Turtle bare if they would not be read back with the same type&lt;/li&gt;
&lt;li&gt;Fix const-correctness violation for reader input string&lt;/li&gt;
&lt;li&gt;Fix possible crash in serd_writer_end_anon() when writing invalid lists&lt;/li&gt;
&lt;li&gt;Generate blank names like &lt;em&gt;:b1 and &lt;/em&gt;:B2 not &lt;em&gt;:genid1 &lt;/em&gt;:docid2&lt;/li&gt;
&lt;li&gt;Support new RDF 1.1 Turtle&lt;/li&gt;
&lt;li&gt;Update to waf 1.7.14&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Serd"/></entry><entry><title>Sratom 0.4.4</title><link href="https://drobilla.net/2014/01/04/sratom-0-4-4.html" rel="alternate"/><published>2014-01-04T21:09:00-05:00</published><updated>2014-01-04T21:09:00-05:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2014-01-04:/2014/01/04/sratom-0-4-4.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/sratom-0.4.4.tar.bz2"&gt;Sratom 0.4.4&lt;/a&gt; has been released.  Sratom is a small library for serialising LV2 atoms to and from RDF, for converting between binary and text or storing in a model.  For more information, see &lt;a href="http://drobilla.net/software/sratom"&gt;http://drobilla.net/software/sratom&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Escape invalid characters when writing paths as URIs&lt;/li&gt;
&lt;li&gt;Fancier printing without subject and predicate&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="LAD"/><category term="LV2"/><category term="RDF"/><category term="Sratom"/></entry><entry><title>Sratom 0.4.2</title><link href="https://drobilla.net/2013/02/18/sratom-0-4-2.html" rel="alternate"/><published>2013-02-18T16:17:00-05:00</published><updated>2013-02-18T16:17:00-05:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2013-02-18:/2013/02/18/sratom-0-4-2.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/sratom-0.4.2.tar.bz2"&gt;Sratom 0.4.2&lt;/a&gt; has been released.  Sratom is a small library for serialising LV2 atoms to and from RDF, for converting between binary and text or storing in a model.  For more information, see &lt;a href="http://drobilla.net/software/sratom"&gt;http://drobilla.net/software/sratom&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Disable timestamps in HTML documentation for reproducible build&lt;/li&gt;
&lt;li&gt;Fix memory leaks&lt;/li&gt;
&lt;li&gt;Fix serialisation of nested tuples&lt;/li&gt;
&lt;li&gt;Update to waf 1.7.9 and autowaf r90 (install docs to versioned directory)&lt;/li&gt;
&lt;li&gt;Use new sord API to clean up and shrink code&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="LAD"/><category term="LV2"/><category term="RDF"/><category term="Sratom"/></entry><entry><title>Sord 0.12.0</title><link href="https://drobilla.net/2013/02/18/sord-0-12-0.html" rel="alternate"/><published>2013-02-18T16:05:00-05:00</published><updated>2013-02-18T16:05:00-05:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2013-02-18:/2013/02/18/sord-0-12-0.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/sord-0.12.0.tar.bz2"&gt;Sord 0.12.0&lt;/a&gt; has been released.  Sord is a lightweight C library for storing RDF statements in memory. For more information, see &lt;a href="http://drobilla.net/software/sord"&gt;http://drobilla.net/software/sord&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add sord_get() for easily getting single property values&lt;/li&gt;
&lt;li&gt;Update to waf 1.7.9 and autowaf r90 (install docs to versioned directory)&lt;/li&gt;
&lt;li&gt;sord_validate: Pass type check when range is xsd:anyURI and value is a URI&lt;/li&gt;
&lt;li&gt;sord_validate: Support any subClassOf rdf:Property, not just baked-in ones&lt;/li&gt;
&lt;li&gt;sordmm.hpp: Add Node::to_serd_node()&lt;/li&gt;
&lt;li&gt;sordmm.hpp: Add convenient constructors for decimal and integer literals&lt;/li&gt;
&lt;li&gt;sordmm.hpp: Don't automatically add RDF namespace prefix to world&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Sord"/></entry><entry><title>Serd 0.18.2</title><link href="https://drobilla.net/2012/12/23/serd-0-18-2.html" rel="alternate"/><published>2012-12-23T02:32:00-05:00</published><updated>2012-12-23T02:32:00-05:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2012-12-23:/2012/12/23/serd-0-18-2.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/serd-0.18.2.tar.bz2"&gt;Serd 0.18.2&lt;/a&gt; has been released.  Serd is a lightweight C library for RDF syntax which supports reading and writing &lt;a href="https://www.w3.org/TR/turtle/"&gt;Turtle&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/trig/"&gt;TriG&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/n-triples/"&gt;NTriples&lt;/a&gt;, and &lt;a href="https://www.w3.org/TR/n-quads/"&gt;NQuads&lt;/a&gt;.  Serd is suitable for performance-critical or resource-limited applications, such as serialising very large data sets or embedded systems.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Disable timestamps in HTML documentation for reproducible build&lt;/li&gt;
&lt;li&gt;Fix bug that caused "a" abbreviation in non-predicate position&lt;/li&gt;
&lt;li&gt;Fix clashing symbol "error" in amalgamation build&lt;/li&gt;
&lt;li&gt;Fix crash when resolving against non-standard base URIs&lt;/li&gt;
&lt;li&gt;Fix crash when serd_node_new_decimal is called with infinity or NaN&lt;/li&gt;
&lt;li&gt;Update to waf 1.7.8 and autowaf r90 (install docs to versioned directory)&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Serd"/></entry><entry><title>Sord 0.10.4</title><link href="https://drobilla.net/2012/10/14/sord-0-10-4.html" rel="alternate"/><published>2012-10-14T22:23:00-04:00</published><updated>2012-10-14T22:23:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2012-10-14:/2012/10/14/sord-0-10-4.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/sord-0.10.4.tar.bz2"&gt;Sord 0.10.4&lt;/a&gt; has been released.  Sord is a lightweight C library for storing RDF statements in memory. For more information, see &lt;a href="http://drobilla.net/software/sord"&gt;http://drobilla.net/software/sord&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Disable timestamps in HTML documentation for reproducible build&lt;/li&gt;
&lt;li&gt;Fix memory leaks in sord_validate&lt;/li&gt;
&lt;li&gt;Implement better data type validation in sord_validate conformant with the XSD and OWL specifications&lt;/li&gt;
&lt;li&gt;Install sord_validate man page&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Sord"/></entry><entry><title>How to Define a Datatype in RDF</title><link href="https://drobilla.net/2012/09/08/how-to-define-a-datatype-in-rdf.html" rel="alternate"/><published>2012-09-08T16:42:00-04:00</published><updated>2012-09-08T16:42:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2012-09-08:/2012/09/08/how-to-define-a-datatype-in-rdf.html</id><content type="html">&lt;p&gt;I had to do some digging around to figure out how to define a new
Datatype with restrictions in &lt;a href="http://www.w3.org/TR/rdf-concepts/"&gt;RDF&lt;/a&gt;,
so I thought it might make a useful post to save someone else the
trouble in the future.&lt;/p&gt;
&lt;p&gt;RDF datatypes are based on &lt;a href="http://www.w3.org/TR/xmlschema11-2/"&gt;XSD
datatypes&lt;/a&gt;, which are often used
directly. Unfortunately, most implementations simply have the XSD types
baked in and do not support or validate new datatype descriptions
(though at least &lt;a href="/software/sord"&gt;&lt;code&gt;sord_validate&lt;/code&gt;&lt;/a&gt;
can). Regardless, it is sometimes necessary to define a datatype with a
specific restriction so it can be machine validated. It's a bit tricky
to figure out how to do this, since everything is buried in
specifications that aren't as triple oriented as they should be. So,
here is an example of defining a datatype restricted by regular
expression in Turtle, derived from the OWL documentation:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;http&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;//example.org/CSymbol&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;rdfs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;Datatype&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;rdfs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;comment&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;A symbol in the C programming language&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;owl&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;onDatatype&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;xsd&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;owl&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;withRestrictions&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nx"&gt;xsd&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;pattern&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;[_a-zA-Z][_a-zA-Z0-9]*&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;The XSD specification defines several “constraining facets” you can use
in this way. See the XSD specification for details, but the most obvious
and useful for RDF are: xsd:length, xsd:minLength, xsd:maxLength,
xsd:pattern, xsd:maxInclusive, xsd:maxExclusive, xsd:minInclusive,
xsd:minExclusive. For example, you can define a numeric type with
restricted range like so:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;http&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;//example.org/AnswerishInteger&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;rdfs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;Datatype&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;rdfs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;comment&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;An integer between 24 and 42 inclusive&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;owl&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;onDatatype&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;xsd&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;integer&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;owl&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;withRestrictions&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nx"&gt;xsd&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;minInclusive&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;24&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nx"&gt;xsd&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;maxInclusive&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;42&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Defining datatypes in this way and using them as the rdfs:range for
properties is a good idea because it describes which values are valid in
a machine readable way. This makes it possible for simple &lt;em&gt;generic&lt;/em&gt;
tools to validate data, ensuring that all literals are valid values for
the property they describe.&lt;/p&gt;</content><category term="misc"/><category term="Semantic Web"/><category term="RDF"/></entry><entry><title>Sratom 0.4.0</title><link href="https://drobilla.net/2012/08/23/sratom-0-4-0.html" rel="alternate"/><published>2012-08-23T05:11:00-04:00</published><updated>2012-08-23T05:11:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2012-08-23:/2012/08/23/sratom-0-4-0.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/sratom-0.4.0.tar.bz2"&gt;Sratom 0.4.0&lt;/a&gt; has been released.  Sratom is a small library for serialising LV2 atoms to and from RDF, for converting between binary and text or storing in a model.  For more information, see &lt;a href="http://drobilla.net/software/sratom"&gt;http://drobilla.net/software/sratom&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Correctly read objects with several rdf:type properties&lt;/li&gt;
&lt;li&gt;Fix various hyper-strict warnings&lt;/li&gt;
&lt;li&gt;Support writing Object Atoms as top level descriptions if subject and predicate are not given.&lt;/li&gt;
&lt;li&gt;Upgrade to waf 1.7.2&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="LAD"/><category term="LV2"/><category term="RDF"/><category term="Sratom"/></entry><entry><title>Sord 0.10.0</title><link href="https://drobilla.net/2012/08/23/sord-0-10-0.html" rel="alternate"/><published>2012-08-23T04:19:00-04:00</published><updated>2012-08-23T04:19:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2012-08-23:/2012/08/23/sord-0-10-0.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/sord-0.10.0.tar.bz2"&gt;Sord 0.10.0&lt;/a&gt; has been released.  Sord is a lightweight C library for storing RDF statements in memory. For more information, see &lt;a href="http://drobilla.net/software/sord"&gt;http://drobilla.net/software/sord&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add error callback to world for custom error reporting&lt;/li&gt;
&lt;li&gt;Add option to build utilities as static binaries&lt;/li&gt;
&lt;li&gt;Do not require a C++ compiler to build&lt;/li&gt;
&lt;li&gt;Fix various hyper-strict warnings&lt;/li&gt;
&lt;li&gt;Make all 'zix' symbols private to avoid symbol clashes in static builds&lt;/li&gt;
&lt;li&gt;Performance and space (per node) improvements&lt;/li&gt;
&lt;li&gt;Remove problematic "Loaded n statements" output from serdi&lt;/li&gt;
&lt;li&gt;SSE4.2 accelerated hashing for node interning, where available&lt;/li&gt;
&lt;li&gt;Strip down API documentation to a single clean page&lt;/li&gt;
&lt;li&gt;Upgrade to waf 1.7.2&lt;/li&gt;
&lt;li&gt;sordmm.hpp: Add indices and graphs parameters to Model constructor&lt;/li&gt;
&lt;li&gt;sordmm.hpp: Correctly handle Sord::Node self-assignment&lt;/li&gt;
&lt;li&gt;sordmm.hpp: Remove overzealous URI scheme assertion&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Sord"/></entry><entry><title>Serd 0.18.0</title><link href="https://drobilla.net/2012/08/23/serd-0-18-0.html" rel="alternate"/><published>2012-08-23T04:18:00-04:00</published><updated>2012-08-23T04:18:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2012-08-23:/2012/08/23/serd-0-18-0.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/serd-0.18.0.tar.bz2"&gt;Serd 0.18.0&lt;/a&gt; has been released.  Serd is a lightweight C library for RDF syntax which supports reading and writing &lt;a href="https://www.w3.org/TR/turtle/"&gt;Turtle&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/trig/"&gt;TriG&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/n-triples/"&gt;NTriples&lt;/a&gt;, and &lt;a href="https://www.w3.org/TR/n-quads/"&gt;NQuads&lt;/a&gt;.  Serd is suitable for performance-critical or resource-limited applications, such as serialising very large data sets or embedded systems.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add -e option to serdi to use incremental reading&lt;/li&gt;
&lt;li&gt;Add -q option to serdi to suppress all non-data output, e.g. errors&lt;/li&gt;
&lt;li&gt;Add error callback to reader and writer for custom error reporting&lt;/li&gt;
&lt;li&gt;Add incremental read interface suitable for reading from infinite streams&lt;/li&gt;
&lt;li&gt;Add option to build utilities as static binaries&lt;/li&gt;
&lt;li&gt;Do not require a C++ compiler to build&lt;/li&gt;
&lt;li&gt;Fix various hyper-strict warnings&lt;/li&gt;
&lt;li&gt;Report write size correctly when invalid UTF-8 is encountered and a replacement character is written&lt;/li&gt;
&lt;li&gt;Reset indent when finishing a write&lt;/li&gt;
&lt;li&gt;Strip down API documentation to a single clean page&lt;/li&gt;
&lt;li&gt;Support digits at start of local names as per new Turtle grammar&lt;/li&gt;
&lt;li&gt;Upgrade to waf 1.7.2&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Serd"/></entry><entry><title>Sratom 0.2.0</title><link href="https://drobilla.net/2012/04/18/sratom-0-2-0.html" rel="alternate"/><published>2012-04-18T19:14:00-04:00</published><updated>2012-04-18T19:14:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2012-04-18:/2012/04/18/sratom-0-2-0.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/sratom-0.2.0.tar.bz2"&gt;Sratom 0.2.0&lt;/a&gt; has been released.  Sratom is a small library for serialising LV2 atoms to and from RDF, for converting between binary and text or storing in a model.  For more information, see &lt;a href="http://drobilla.net/software/sratom"&gt;http://drobilla.net/software/sratom&lt;/a&gt;.&lt;/p&gt;</content><category term="misc"/><category term="Software"/><category term="LAD"/><category term="LV2"/><category term="RDF"/><category term="Sratom"/></entry><entry><title>Sord 0.8.0</title><link href="https://drobilla.net/2012/04/17/sord-0-8-0.html" rel="alternate"/><published>2012-04-17T22:24:00-04:00</published><updated>2012-04-17T22:24:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2012-04-17:/2012/04/17/sord-0-8-0.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/sord-0.8.0.tar.bz2"&gt;Sord 0.8.0&lt;/a&gt; has been released.  Sord is a lightweight C library for storing RDF statements in memory. For more information, see &lt;a href="http://drobilla.net/software/sord"&gt;http://drobilla.net/software/sord&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add SordInserter for writing to a model via Serd sink functions.&lt;/li&gt;
&lt;li&gt;Add convenient sord_search(), sord_ask(), and sord_count()&lt;/li&gt;
&lt;li&gt;Add sord_iter_get_node()&lt;/li&gt;
&lt;li&gt;Add sord_new_relative_uri()&lt;/li&gt;
&lt;li&gt;Add sord_validate tool for validating data against RDF/OWL schemas&lt;/li&gt;
&lt;li&gt;Fix comparison of typed literals&lt;/li&gt;
&lt;li&gt;Install man page to DATADIR (e.g. PREFIX/share/man, not PREFIX/man)&lt;/li&gt;
&lt;li&gt;Refuse to intern relative URIs in sord_new_uri*()&lt;/li&gt;
&lt;li&gt;Support compilation as C++ under MSVC++.&lt;/li&gt;
&lt;li&gt;Take advantage of interning in sord_node_equals()&lt;/li&gt;
&lt;li&gt;Tolerate serd passing NULL nodes to reader callback (serd 0.6.0)&lt;/li&gt;
&lt;li&gt;Use path variables in pkgconfig files&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Sord"/></entry><entry><title>Serd 0.14.0</title><link href="https://drobilla.net/2012/04/17/serd-0-14-0.html" rel="alternate"/><published>2012-04-17T22:23:00-04:00</published><updated>2012-04-17T22:23:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2012-04-17:/2012/04/17/serd-0-14-0.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/serd-0.14.0.tar.bz2"&gt;Serd 0.14.0&lt;/a&gt; has been released.  Serd is a lightweight C library for RDF syntax which supports reading and writing &lt;a href="https://www.w3.org/TR/turtle/"&gt;Turtle&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/trig/"&gt;TriG&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/n-triples/"&gt;NTriples&lt;/a&gt;, and &lt;a href="https://www.w3.org/TR/n-quads/"&gt;NQuads&lt;/a&gt;.  Serd is suitable for performance-critical or resource-limited applications, such as serialising very large data sets or embedded systems.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add SerdBulkSink for writing bulk output and corresponding serdi -B option&lt;/li&gt;
&lt;li&gt;Add serd_chunk_sink for easy writing to a string&lt;/li&gt;
&lt;li&gt;Add serd_file_sink for easy writing to a FILE* stream&lt;/li&gt;
&lt;li&gt;Add serd_node_new_blob and serd_base64_decode for handling arbitrary binary data via base64 encoding&lt;/li&gt;
&lt;li&gt;Add serd_node_new_file_uri() and serd_file_uri_parse() and implement proper URI to/from path hex escaping, etc.&lt;/li&gt;
&lt;li&gt;Add serd_reader_set_default_graph() for reading a file as a named graph&lt;/li&gt;
&lt;li&gt;Add serd_strtod(), serd_node_new_decimal(), and serd_node_new_integer() for locale-independent numeric node parsing/serialising&lt;/li&gt;
&lt;li&gt;Add serd_uri_serialise_relative() for making URIs relative to a base where possible (by chopping a common prefix and adding dot segments)&lt;/li&gt;
&lt;li&gt;Add serd_writer_get_env()&lt;/li&gt;
&lt;li&gt;Add serd_writer_set_root_uri() and corresponding -r option to serdi to enable writing URIs with up references (../)&lt;/li&gt;
&lt;li&gt;Add serdi -f option to prevent URI qualification&lt;/li&gt;
&lt;li&gt;Escape ASCII control characters in output (e.g. fix problems with string literals that start with a backspace)&lt;/li&gt;
&lt;li&gt;Handle a quote as the last character of a long string literal in the writer (by escaping it) rather than the reader, to avoid writing Turtle other tools fail to parse&lt;/li&gt;
&lt;li&gt;Handle files and strings that start with a UTF-8 Byte Order Mark&lt;/li&gt;
&lt;li&gt;Implement pretty-printing for collections&lt;/li&gt;
&lt;li&gt;Improve URI resolution to cover most of the abnormal cases from RFC3986&lt;/li&gt;
&lt;li&gt;Improve write performance by doing bulk writes for unescaped substrings&lt;/li&gt;
&lt;li&gt;Install man page to DATADIR (e.g. PREFIX/share/man, not PREFIX/man)&lt;/li&gt;
&lt;li&gt;Make URIs serialised by the writer properly escape characters&lt;/li&gt;
&lt;li&gt;Parse collections iteratively in O(1) space&lt;/li&gt;
&lt;li&gt;Remove use of multi-byte peek (readahead) and use exactly 1 page for read buffer (instead of 2)&lt;/li&gt;
&lt;li&gt;Report read error if both "genid" and "docid" IDs are found in the same document, to prevent silent merging of distinct blank nodes&lt;/li&gt;
&lt;li&gt;Report reason for failure to open file in serdi&lt;/li&gt;
&lt;li&gt;Resolve dot segments in serd_uri_resolve() instead of at write time&lt;/li&gt;
&lt;li&gt;Support Windows file://c:/foo URIs in serd_uri_to_path() on all platforms&lt;/li&gt;
&lt;li&gt;Support compilation as C++ under MSVC++&lt;/li&gt;
&lt;li&gt;Support file://localhost/foo URIs in serd_uri_to_path()&lt;/li&gt;
&lt;li&gt;Tolerate invalid characters in string literals by replacing with the Unicode replacement character&lt;/li&gt;
&lt;li&gt;Use path variables in pkgconfig files&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Serd"/></entry><entry><title>Serd 0.5.0</title><link href="https://drobilla.net/2011/09/29/serd-0-5-0.html" rel="alternate"/><published>2011-09-29T04:00:00-04:00</published><updated>2011-09-29T04:00:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2011-09-29:/2011/09/29/serd-0-5-0.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/serd-0.5.0.tar.bz2"&gt;Serd 0.5.0&lt;/a&gt; has been released.  Serd is a lightweight C library for RDF syntax which supports reading and writing &lt;a href="https://www.w3.org/TR/turtle/"&gt;Turtle&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/trig/"&gt;TriG&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/n-triples/"&gt;NTriples&lt;/a&gt;, and &lt;a href="https://www.w3.org/TR/n-quads/"&gt;NQuads&lt;/a&gt;.  Serd is suitable for performance-critical or resource-limited applications, such as serialising very large data sets or embedded systems.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add ability to build static library&lt;/li&gt;
&lt;li&gt;Add serd_env_set_prefix_from_strings for convenience&lt;/li&gt;
&lt;li&gt;Add serd_strerror&lt;/li&gt;
&lt;li&gt;Avoid writing illegal Turtle names as a result of URI qualifying&lt;/li&gt;
&lt;li&gt;Fix erroneously equal SERD_ERR_BAD_SYNTAX and SERD_ERR_BAD_ARG&lt;/li&gt;
&lt;li&gt;Fix pretty printing of successive blank descriptions, i.e. "] , ["&lt;/li&gt;
&lt;li&gt;Gracefully handle NULL reader sinks&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Serd"/></entry><entry><title>Sord 0.5.0</title><link href="https://drobilla.net/2011/09/29/sord-0-5-0.html" rel="alternate"/><published>2011-09-29T04:00:00-04:00</published><updated>2011-09-29T04:00:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2011-09-29:/2011/09/29/sord-0-5-0.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/sord-0.5.0.tar.bz2"&gt;Sord 0.5.0&lt;/a&gt; has been released.  Sord is a lightweight C library for storing RDF statements in memory. For more information, see &lt;a href="http://drobilla.net/software/sord"&gt;http://drobilla.net/software/sord&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add ability to build static library&lt;/li&gt;
&lt;li&gt;Add function sord_contains for checking for a triple pattern&lt;/li&gt;
&lt;li&gt;Add function sord_write_iter for writing a queried range&lt;/li&gt;
&lt;li&gt;Fix Sord::Namespaces::qualify to no longer chop prefixes&lt;/li&gt;
&lt;li&gt;Remove glib dependency&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Sord"/></entry><entry><title>Serd 0.4.2</title><link href="https://drobilla.net/2011/05/25/serd-0-4-2.html" rel="alternate"/><published>2011-05-25T23:00:00-04:00</published><updated>2011-05-25T23:00:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2011-05-25:/2011/05/25/serd-0-4-2.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/serd-0.4.2.tar.bz2"&gt;Serd 0.4.2&lt;/a&gt; has been released.  Serd is a lightweight C library for RDF syntax which supports reading and writing &lt;a href="https://www.w3.org/TR/turtle/"&gt;Turtle&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/trig/"&gt;TriG&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/n-triples/"&gt;NTriples&lt;/a&gt;, and &lt;a href="https://www.w3.org/TR/n-quads/"&gt;NQuads&lt;/a&gt;.  Serd is suitable for performance-critical or resource-limited applications, such as serialising very large data sets or embedded systems.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix build system Python 3 compatibility&lt;/li&gt;
&lt;li&gt;Fix compilation issues on some systems&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Serd"/></entry><entry><title>Sord 0.4.2</title><link href="https://drobilla.net/2011/05/25/sord-0-4-2.html" rel="alternate"/><published>2011-05-25T23:00:00-04:00</published><updated>2011-05-25T23:00:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2011-05-25:/2011/05/25/sord-0-4-2.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/sord-0.4.2.tar.bz2"&gt;Sord 0.4.2&lt;/a&gt; has been released.  Sord is a lightweight C library for storing RDF statements in memory. For more information, see &lt;a href="http://drobilla.net/software/sord"&gt;http://drobilla.net/software/sord&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bump Serd dependency to 0.4.0&lt;/li&gt;
&lt;li&gt;Fix build system Python 3 compatibility&lt;/li&gt;
&lt;li&gt;Fix compilation issues on some systems&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Sord"/></entry><entry><title>Serd 0.4.0</title><link href="https://drobilla.net/2011/05/25/serd-0-4-0.html" rel="alternate"/><published>2011-05-25T03:00:00-04:00</published><updated>2011-05-25T03:00:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2011-05-25:/2011/05/25/serd-0-4-0.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/serd-0.4.0.tar.bz2"&gt;Serd 0.4.0&lt;/a&gt; has been released.  Serd is a lightweight C library for RDF syntax which supports reading and writing &lt;a href="https://www.w3.org/TR/turtle/"&gt;Turtle&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/trig/"&gt;TriG&lt;/a&gt;, &lt;a href="https://www.w3.org/TR/n-triples/"&gt;NTriples&lt;/a&gt;, and &lt;a href="https://www.w3.org/TR/n-quads/"&gt;NQuads&lt;/a&gt;.  Serd is suitable for performance-critical or resource-limited applications, such as serialising very large data sets or embedded systems.&lt;/p&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Serd"/></entry><entry><title>Sord 0.4.0</title><link href="https://drobilla.net/2011/05/25/sord-0-4-0.html" rel="alternate"/><published>2011-05-25T03:00:00-04:00</published><updated>2011-05-25T03:00:00-04:00</updated><author><name>drobilla</name></author><id>tag:drobilla.net,2011-05-25:/2011/05/25/sord-0-4-0.html</id><content type="html">&lt;p&gt;&lt;a href="//download.drobilla.net/sord-0.4.0.tar.bz2"&gt;Sord 0.4.0&lt;/a&gt; has been released.  Sord is a lightweight C library for storing RDF statements in memory. For more information, see &lt;a href="http://drobilla.net/software/sord"&gt;http://drobilla.net/software/sord&lt;/a&gt;.&lt;/p&gt;</content><category term="misc"/><category term="Software"/><category term="RDF"/><category term="Sord"/></entry></feed>