Subscribe: DBTune blog - Comments
Added By: Feedage Forager Feedage Grade B rated
Language: English
data  graph  graphs quad  graphs  music  named graphs  named  quad stores  quad  sparql  statement  store  stores  triple  yves 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: DBTune blog - Comments

DBTune blog - Comments

Creating a music-related web of data. These are my views and not those of the BBC.

Published: Fri, 20 Sep 2013 23:21:20 +0200


Your AudioScrobbler data as Linked Data - Christoph

Tue, 26 Mar 2013 22:31:26 +0100

is this service still working? seems like its down

Using RDFa for testing templates - yves

Tue, 28 Jun 2011 14:35:32 +0200

Hello Chris!

assertTriples takes the data passed as a first parameter, use it to inflate the template '/components/atoz/letters', extracts the triples from the inflated template, and checks the extracted triples match the ones given as a second parameter. It also does some blank-node matching logic (nothing too fancy though).

Wrt. your second comment, I haven't had any luck, no. It should be possible to provide libraries wrapping assertTriples tests with intention-revealing names, but I haven't found any way to format the test output in readable documentation :/ Let me know if you find soemthing!


Using RDFa for testing templates - Chris

Tue, 28 Jun 2011 14:25:39 +0200

Great post!

How does assertTriples() work? Is it an RDFa parser?

Also, referring to this comment:

> which can be read as "if you are displaying a list of letters on an A-Z page
> and you have selected one, you shouldn't link to that one"

Did you have any success with creating test helpers that are reusable/intention-revealing? I found that quite painful in php-unit, but if possible it would be nice to have a test helper like


etc. which would remove the need for a comment explaining what the test does. RSpec has an option to format the test output into readable documentation when the tests have nice names, not sure if something similar is possible with phpunit.

Live SPARQL end-point for BBC Programmes - yves

Tue, 28 Jun 2011 11:31:09 +0200

Hello Karima!

Yes, I am not maintaining that end-point anymore, it was taking too much time, as it's not hosted on the BBC network and everything had to go through a proxy which failed over quite a lot.

It did demonstrate a few useful things (and helped identify a few bugs in 4store too), so I still think it was useful though.


Live SPARQL end-point for BBC Programmes - karima

Sun, 29 May 2011 22:15:51 +0200

The endpoint is very slow and often with error http 0.
If you have a cool sparql request (like When the next episode of Doctor Who ?), you can use to share it. (in french

Musicbrainz RDF updated - santuario do corpo

Wed, 25 May 2011 00:38:29 +0200

The D2R mapping is 100% complete right now?

4Store stuff - Yves

Tue, 17 May 2011 21:50:16 +0200


Sorry, just noticed all the comments here - the packages were impossible to build for 10.10, as both branches of 4store (1.0.x and 1.1.x) depended on rasqal/raptor versions that were not available in the repo. It is possible now in Maverick. However, there is now an official 4store package in Debian unstable.

Cheers, and sorry about the delay!

4Store stuff - rreck

Wed, 11 May 2011 17:03:23 +0200

I just built 4store 1.1.3 on Ubuntu 11.04 64bit using raptor2-2.0.2 and rasqal-0.9.25. I did it following the instructions above for dependencies using the packages from the default repositories. 4Store couldn't find libxml2 so I built that from source.

Named Graphs and quad stores - zazi

Fri, 14 Jan 2011 10:53:59 +0100

I spend recently some more thoughts about named semantic graph storing on the overall hot topic 'context modelling' for semantic graphs. My current conclusion is also the usage of quadruple with an explicit 4th column for a 'statement identifier'. This design allows triple (statement) identification over the enclosures of named semantic graphs und furthermore the treatment of provenance for statements and graphs in a same way and also the handling of n-ary relations and its mapping to binary relations (property reification).
Here is an example:

<#alice> :friend <#bob> <#s1> # a simple binary relation

<#ab> rdf:type :HumanRelationship <#s2> # a property reification (an n-ary relation)
<#ab> :participant <#alice> <#s3>
<#ab> :participant <#bob> <#s4>
<#ab> :relationshipType :friendship <#s5>
<#ab> :since "2010-12-12"^xsd:date <#s6>

<#s1> :reified <#ab> <#s7> # an inference that results in a reification relation

<#g1> rdf:type rdfg:Graph <#s8> # a graph enclosure
<#g1> :contains <#s1>
<#g1> :contains <#s2> <#s10>
<#g1> :contains <#s3> <#s11>
<#g1> :contains <#s4> <#s12>
<#g1> :contains <#s5> <#s13>
<#g1> :contains <#s6> <#s14>
<#g1> :contains <#s7> <#s15>

<#g2> rdf:type rdfg:Graph <#s16> # another graph enclosure
<#g2> :contains <#s1> <#s17>

-> I can easily get all statements of a graph by using the :contains relation (indexing)
-> I can easily get semantically related property-oriented context descriptions (n-ary relations) by using the :reified relation
-> provenance on the statement and on the graph level can easily be done by describing the <#g*> and <#s*> information resources:

- thereby, <#s9> -  and  are intended for describing provenance information of statement <#s*> in graph <#g*>
- one can maybe also inherit graph based provenance information to statement provenance information (and vice versa)

-> one can also decouple a reused statement by changing its statement identifier; that means, the triple of the statement are still the same but the relation to the original statement might now be another e.g., reflected by a provenance statement e.g., <#s20> :original <#s19>
-> statement descriptions can be typed i.e. by rdf:Statement

Can such a storing be efficient for the intended use case?

Named Graphs and quad stores - Rob Gonzalez

Thu, 23 Dec 2010 22:47:35 +0100

I'm with Andy on this one, but, generally speaking, I think that performance trumps storage space these days. If what you're building is targeted at end users, then interactive performance trumps pretty much all other concerns (or your software doesn't get used). Quads allows for easier indexing and better performance, so I'd assume most stores lean that way for that reason.

A sneak peek at the BBC Music RDF - canlı sohbet

Wed, 22 Dec 2010 14:46:36 +0100

Thank you forum admin very nice by the way nice sharing

Named Graphs and quad stores - Andy Seaborne

Wed, 22 Dec 2010 14:00:17 +0100

For implementation, storing as triple+list would mean the base level storage had to have lists and support for looking things up in lists.

Storing as quads means that an indexed graph column can be used allowing GRAPH { ....} to work well.

It's a tradoff. For persistent stores - indexed columns are fast; list processing is not when using standard indexing techniques at scale. Whether the space reduction (if any the RDF term slots are usually just integers, either 4 or 8 bytes before compression), and better caching in RAM (disk version) compensates for lack of direct indexing will depend on the application.

For in-memory, the typical list data structure can take quite a few bytes itself (e.g space to grow or internal pointers). A very compact structure could be designed; it's likely to need to reorganise during data insertion which can be costly. If you wanted read-only-once-loaded, this is probably not a problem.

In summary - it all depends!

Named Graphs and quad stores - Yves

Wed, 22 Dec 2010 11:49:28 +0100


Thanks for all the detailed answers - a couple of comments:

@zazi @PaulZH It looks like triple sets works around the issue by adding a 5th element, is that right? If so I guess it has the same issue - triples in multiple graphs will end up being replicated?

@danbri It is an implementation detail :-) I don't think there is nothing wrong with the formal account of Named Graphs (well, apart from the fact that it requires graphs to be named, but that's another thing). I am just wondering why the 'quad-store' trick for implementing named graphs is dominant, when it does seem to lead to a fair lot of data duplication.

Named Graphs and quad stores - Dan Brickley

Tue, 21 Dec 2010 19:59:44 +0100

(genuine question:!)

To what extent is this really an issue with the formal account of named graphs (and SPARQL's version of it), versus an implementation detail for people actually building RDF storage and query systems? Can't the redundancy you mention be optimised away internally within the implementation?

Named Graphs and quad stores - Benji Nowack

Tue, 21 Dec 2010 18:39:03 +0100

I use a separate graph2triple table in ARC (with triple ids) since I ran into massive combinatorial explosions with an earlier quad-column layout (see link below).

As a result, however, I couldn't implement some of SPARQL's features directly with the normalized graph table (certain combinations of GRAPH + OPTIONAL, IIRC, but then ARC is probably the last store that directly translates SPARQL to a single SQL query, that'll become impossible in SPARQL 1.1. anyway).


Named Graphs and quad stores - zazi

Tue, 21 Dec 2010 15:57:14 +0100

As already mentioned, I guess you are searching for something like 'statement identifier'. The 'triple set' approach from OWLIM seems to have promise (cf. also my thoughts related to this topic 1 and 2).
AFAIK, Virtuoso has also a 5th row in their triple store for internal use as a 'statement identifier'.



Named Graphs and quad stores - PaulZH

Tue, 21 Dec 2010 14:10:11 +0100

Have a look at "triple sets" from the OWLIM people.

I would prefer that every triple would have an identifier in the 4th slot.
Using this identifier one could indicate to which graphs the statement belongs and add other reified info.

Vocabulary interlinkage diagram - yoli

Mon, 06 Dec 2010 22:19:30 +0100

the vocab on your site is very nice

Geocaching for music wins the 7digital prize at London Music Hack Day! - Arthur

Tue, 30 Nov 2010 15:44:13 +0100

Perhaps you need to plug that on the new P2P network :


Geocaching for music wins the 7digital prize at London Music Hack Day! - Yves

Tue, 30 Nov 2010 14:20:19 +0100

Ah ben ca alors! toi ici! :)