Hope to look at this get back with any feedback during next week or so (having some deadlines this weekend) ...
Regards Samuel On 09/24/2010 12:27 PM, Markus Krötzsch wrote: > This email is about how to integrate RDF store bindings into SMW on a > coarse architectural level. > > From looking at the various extensions' code and at the previous > emails, we seem to agree that we need some common interface to > read/write RDF stores. Different bindings could then be done by > implementing this interface. > > Here is my proposal for the classes that will help to do this in the end > (inspired by the existing code): > > == SMWStore == > > SMW as such interacts with an object that implements the "SMWStore" > interface. This interface will be extended with functions needed to do > SPARQL queries. Details depend on how the mapping to SMWQueryResult > objects will work and remain to be decided. > > == SMWExternalStore == > > An SMWStore that has bindings to an external RDF store still uses the > MySQL database backend for some of the data. Some requests are answered > with the database, others are forwarded to the external store. > > So any SMWExternalStore uses two backends: one RDF store binding and one > (database-based) SMWStore class. In existing implementations, this is > often realised by sub-classing SMWSQLStore2. But I think it would > usually be better to use SMWSQLStoreLight. > > To preserve the choice, SMWExternalStore could simply take two objects > on initilaisation: one SMWStore object that is used for the basic > storage tasks, and one RDFStore object that allows us to access the RDF > store. Implementers would not have to change SMWExternalStore, but only > adapt the RDFStore binding to a new RDF backend. > > == RDFStore == > > This would be the backend to access RDF stores. It is similar to the > SparqlTools static class in LinkedWiki. I propose to make it non-static, > so that the endpoint and graph can be part of the object instance > instead of being passed with each call. > > The big question is, which functions are needed in the interface of > RDFStore. I will send another email about this. > > == Other RDF store bindings == > > For implementing bindings to RDF stores, it would be enough to implement > the interface of RDFStore (hopefully just a few methods). So we could > have a few rather small files for different backends. > > > Summary: To define an SMWStore backend that uses an RDF store, one only > has to implement a new RDFStore subclass "MyRDFStore" that can > communicate with the store. One then creates a new SMWStore as an > instance of SMWExternalStore that is initialised with two objects: basic > SMWStore (e.g. SMWSQLStoreLight) object and a MySQLStore object. The > MySQLStore object would possibly need information about the service > endpoint and graph name for initialisation (but this depends on the > implementation; some stores do not support graph names, and others are > not accessed by a service endpoint). > > > -- Markus > > ------------------------------------------------------------------------------ > Nokia and AT&T present the 2010 Calling All Innovators-North America contest > Create new apps& games for the Nokia N8 for consumers in U.S. and Canada > $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing > Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store > http://p.sf.net/sfu/nokia-dev2dev > _______________________________________________ > Semediawiki-devel mailing list > Semediawiki-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/semediawiki-devel > > -- Samuel Lampa --------------------------------------- Student @ Uppsala University Blog: http://saml.rilspace.org --------------------------------------- ------------------------------------------------------------------------------ Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing. http://p.sf.net/sfu/novell-sfdev2dev _______________________________________________ Semediawiki-devel mailing list Semediawiki-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/semediawiki-devel