[redland-dev] Redland contexts vs named graphs
michael
michael at thinknasium.org
Sun Oct 10 22:17:47 CEST 2010
Redland does not directly support named graphs. Instead, named graphs can be implemented by clients using Redland's
context facility. I've been trying to do this and have been running into difficulties.
From the release notes for 0.9.17 [1]:
* Check that duplicate statements are not added to models with the librdf_model_add_statement and
librdf_model_add_statements methods.
* The methods for adding statements with a context do not check.
While adding statements to the model without a context will not introduce duplicates, if a model contains any statement
with a context, duplicates may be returned. So the duplicate restriction to *adding* statements via the
librdf_model_add_statement(s) methods is misleading because it does not ensure that a model will not *return*
duplicates. To ensure uniqueness, clients must examine each statement, skipping those with a context set. Sometimes this
is not even possible for functions like librdf_model_size or any other function that does not accept a context argument.
When querying statements with a particular context, the client again must perform duplicate checking since these
statements aren't checked for duplicates. However this case is not as simple as the previous one. The client must keep
track of all previously seen statements to recognize duplicates. If large datasets are queried, this might be
prohibitive. Doing this for all calls to the library seems like something the library should be providing.
Would it be possible to have an option or another api that limits requests to only statements without a context? Another
possibility would be to have a special context name to refer to this set. Also, could the context option be added to the
other functions? The one that's especially important is librdf_model_size. Selecting all statements and counting them in
the client is not very scalable.
There is an outstanding bug report [2] that addresses this that hasn't seen much activity. Perhaps the severity and
priority of this bug could be reconsidered?
-Michael
[1] http://librdf.org/RELEASE.html#rel0_9_17
[2] http://bugs.librdf.org/mantis/view.php?id=108
More information about the redland-dev
mailing list