[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