[Mulgara-dev] Fwd: [Mulgara-general] Model-URI/URL Use-cases and Requirements and Proposal

Andrae Muys andrae at netymon.com
Mon Apr 28 05:09:16 UTC 2008


Forwarded from my archives.


Begin forwarded message:
> From: Andrae Muys <andrae at netymon.com>
> Date: 19 September 2007 9:36:09 PM
> To: Mulgara General <mulgara-general at mulgara.org>
> Subject: [Mulgara-general] Model-URI/URL Use-cases and Requirements  
> and Proposal
> Reply-To: Mulgara General <mulgara-general at mulgara.org>
>
>
> I would greatly appreciate any comments anyone may have - please  
> also feel free to solicit comments from outside the mulgara  
> community if there is interest.
>
> * The Use Cases and Requirements
>
> As discussed in my previous email the three key requirements of a  
> model-URI proposal are:
>
> 1. Protocol/Scheme independence
> 2. Model/Server mobility
> 3. URI-standards compliance (ie. no fragment)
>
> Also desirable are
>
> 4. Unique-name
> 5. Namespaced to allow a) potential resolution; b) predicable,  
> human-readable URI's.
>
> The context of the most complex use-case involves 4 models and 4  
> machines (and assumes a Distributed or Federated Resolver)
>
> :modelA is on server1 on host1 and needs to reference :modelB  
> and :modelC
> :modelB is on server2 on host2
> :modelC is on server3 on host3
> :modelD is on server4 on host4 run by an unrelated organisation
>
> The application needs to perform the query:
>
> select $identifer subquery(
>   select $s $p $o where $s $p $o in $location and $identifer  
> <mulgara:locatedAt> $location in <mulgara:modelURLResolver>)
> from host1:modelA
> where [ <:useModel> $identifier ] ;
>
> Which queries each model listed in :modelA after converting their  
> identifier into a URL via a posited resolution mechanism.
>
> Now host2 fails, and we restore server2 on host3 to run alongside  
> server3.
>
> We would like to be able to have the query run unmodified.
>
> What this means is that :modelB cannot encode host2 in its URI.
>
> The URI does need to encode some sort of server-id as servers are  
> guaranteed to use the same model-names at least some of the time  
> (consider all system-model's have the name "").
>
> Also because :modelD and :modelA-C are managed by unrelated  
> organisations we must somehow encode the organisation in the  
> model's URI-stem as they may well decide to use the same server-id  
> ("server1" or "database" anyone?).
>
>
> Also consider that any encoding of the organisation must also allow  
> that organisation to maintain their own independent registry, or  
> the proposal ceases to be scale-free (it's on this that the  
> original UUID proposal floundered).
>
> I have considered abandoning requirement 4, and just using URL's.   
> However ultimately we require a canonical name for internal  
> purposes (even if it isn't exposed externally), and so even using  
> URL's we would have to pick a designated 'unique name' for the  
> model - we can't escape that - so we might as well save ourselves  
> the headache and make it unambiguous.
>
> So a summary of my thinking on the use-cases/requirements for rdf  
> model-names - we desire:
>
> 1. Unambiguously an identifier
> 2. Encodes organisation
> 3. Encodes server-id
> 4. Doesn't encode hostname
> 5. Potentially resolvable via a per-organisation registry
>
> * Proposal
>
> If we wish to be unambiguous then we should use our own URI- 
> scheme.  This has the added benefit that once we use our own scheme  
> we have a lot more flexibility regarding how we structure the rest  
> of the URI to meet our requirements.
>
> I am proposing to use the scheme 'rdfdb' - as did the original UUID  
> proposal.
>
> I would prefer to avoid the use of opaque URI's; there is no reason  
> why our URI can't be introspected if we structure it sanely - so  
> the structure according to RFC2396 will be 'rdfdb://authority/path'.
>
> Logically the model-name itself makes a good path so we arrive at  
> 'rdfdb://authority/modelName'.  Leaving the need to encode an  
> organisation and a server-id in the authority in a fashion that  
> will potentially permit resolution via a registry.
>
> Now as the authority is not a hostname, RFC2396 identifies us as a  
> "Registry-based Naming Authority".  As such, the characters we have  
> permitted to us are [ - _ . ! ~ * ' ( ) $ , ; : @ & = + ]  
> (excluding the []'s) - and the characters reserved are [ ? / ].
>
> I therefore propose to structure the authority 'server- 
> id~organisation-id' (that is the server-id and org-id separated by  
> a tilde).
>
> At the moment we don't support hierarchical server-id's; but I  
> would like to leave us the option of doing so once we start  
> supporting more aggressive distribution.  We also need to consider  
> that it needs to remain a valid path-element for use in our  
> existing model-URL's.  So for now I would like to limit server-id  
> to the current standard of '<alphaNum>+', but ultimately I think we  
> should consider some sort of delimited hierarchical form (probably  
> dotted).
>
> The organisation-id should be something that will eventually permit  
> the identification of a registry.  For now a dotted hierarchical  
> form should suffice - although I will make sure the implementation  
> leaves this as open as possible (the use of a tilde makes this  
> possible).
>
> It has also been suggested that to make it unambiguously clear we  
> are *not* encoding a hostname as the organisation-id we should  
> invert the traditional dns-style representation.
>
> So putting all the pieces together:  If I am running a mulgara  
> server -
>
> host:         pneuma.netymon.com
> organisation: netymon.com
> server-id:    rdfDatabase
> model-name:   addressBook
>
> The model URL for addressBook remains: rmi://pneuma.netymon.com/ 
> rdfDatabase#addressBook
>                                    or: soap://pneuma.netymon.com/ 
> rdfDatabase#addressBook   ...etc...
>
> and the model URL for the model is: rdfdb://rdfDatabase~com.netymon/ 
> addressBook
>
>
> As mentioned at the top of the email, comments are not only welcome  
> but eagerly desired.
>
> Thanks,
>
> Andrae
>
> -- 
> Andrae Muys
> andrae at netymon.com
> Senior RDF/SemanticWeb Consultant
> Netymon Pty Ltd
>
>
> _______________________________________________
> Mulgara-general mailing list
> Mulgara-general at mulgara.org
> http://mulgara.org/mailman/listinfo/mulgara-general

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






More information about the Mulgara-dev mailing list