[Mulgara-dev] db-uri/model-uri matching

Andrae Muys andrae at netymon.com
Thu Apr 17 09:31:52 UTC 2008


On 17/04/2008, at 7:08 PM, Life is hard, and then you die wrote:
> On Thu, Apr 17, 2008 at 02:01:20PM +1000, Andrae Muys wrote:
>> Unfortunately these problems are going to persist until we can get
>> mgr-58 finished and merged.  These problems are all a result of our
>> original conflation of the concept of a model's name and a model's
>> location, and while our subsequent workarounds keep things mostly
>> workable, ultimately they will continue to bite us until we address
>> the root cause.
>
> I know you're having too much fun with Trie's right now, but how much
> more work do you estimate for mgr-58?

There are problems with relative/absolute URI's in the backup/restore  
code and the corresponding workarounds in the string-pool interface  
code (StringPoolResolverSession iirc).  I would say a week or two -  
but given the need to ensure existing backups restore cleanly in the  
new system it could take 3-4 to make sure it really is solid.

It would also be nice to write a simple resolver to provide explicit  
access to the URL<->URI mapping for use in meta-queries; that's a  
couple of days work + some debugging.

> Also, I was left a little confused after previous emails: what exactly
> is the final solution that was adopted in mgr-58? I.e, what do the
> model-URL's in the queries have to look like exactly, and what do the
> raw model-URI's have to look like (assuming no registry, just the
> local mapping stuff)? And how is the local mapping configured, or is
> it hardcoded?

The URL's are intended to be completely independent from the URI's -  
the only common component required is the local-modelname.

So if you currently access a model as rmi://hostname/ 
servername#modelname - you would continue to access it using the same  
name, however now soap://hostname/servicename#modelname and local:// 
servername#modelname, or http://www.mydomain.com/mywebservice? 
model=modelname, or whatever URL scheme you come up with will also  
work.  At the server we use the local-modelname and the servers  
configuration (which will default to using DNS like we currently do,  
so existing installations don't _have_ to change anything) to  
construct a canonical model URI when it needs it.

I've forgotten the precise details of the URI format, but I do recall  
it was a hierarchical (not opaque) non-resolvable URI that was  
identified as such by using the rdfdb: URI-scheme, and rendered non- 
resolvable by using a ~ as a separator in the authority.

> If we have to rename models now, I just want to make sure I won't have
> to do it again, either at the application level or in the db (well, I
> guess we'll have to convert the fragments to paths in the URLs, but I
> can live with that).

To the extent you explicitly refer to models as subjects, predicates,  
or objects in queries the change to rdfdb: style URI's will require  
some updates at the application level.  Given the way models are  
currently stored in the db, we should be able to make the db- 
conversion as simple as a slightly modified backup/restore.

I really have tried to make this fix as painless as possible.

Andrae

-- 
Andrae Muys
andrae at netymon.com
Senior RDF/Semantic-Web Consultant
Netymon Pty Ltd






More information about the Mulgara-dev mailing list