Re: [Sugar-devel] Call for testing and feedback: alternative Journal implementation
On Mon, Jul 02, 2012 at 05:38:42PM +0200, Christophe Guéret wrote: Hi Aleksey, I've packaged redstore to SD:Factory repos ( https://packages.sugarlabs.org/project/monitor?project=SweetsDistribution:Factory ) the package is redstore that provides redstore command and redstored init.d script. Great! Many thanks :) I didn't make it autorun in case if you will use it in the same way as Journal (and Sugar Network database), i.e., keep database in ~/.sugar/PROFILE and start daemon from current user's session. Could you point me to an example on how to set this up? Currently I set the database system wide and start the daemon at boot time but switching to a user session would make sens. For example, you can start/stop redstore from DBus service with pointing it ~/.sugar/PROFILE directory. btw, it might be useful to create SemanticXO package as well and make it pluggable like it was done with Sugar Network (checkbox in Sweets Distribution Control Panel component). i.e., it should regular DBus service that provides the same Dbus API as sugar-datastore. If you will do that, I think it will be possible to plug either sugar-datastore or SemanticXO in runtime. It is already the case, on my test machines I remove sugar-datastore to put the one provided by SemanticXO instead. That one uses the same DBUS API and service name. I will look into packaging it. The idea is making theis switch as easy as possible for users, e.g., check-box from Control Panel. The way how it might be done is setting XDG_DATA_DIRS environment variable that points to new directory with dbus-1/services/*.service files (it is how Sugar Shell from Sweets Distribution runs sugar-datastore from /opt directrory), i.e., there is no need in deleting original sugar-datastore. Also, Sweets Distribution has Sugar Shell plugins in form of arbitrary code in jarabe/plugins/ directory. If you think it is useful to have SemanticXO plugin (w/ Control Panel component), plugins system might be tweaked to handle things like setting environment variables. I was slowed down on SemanticXO recently, I hope to be able to get back in speed soon... Christophe -- Aleksey ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
Re: [Sugar-devel] Call for testing and feedback: alternative Journal implementation
Dear everyone, I've updated the installation bundle for SemanticXO and also fixed a few bugs reported on this mail thread. To play around with the code: * go to http://git.sugarlabs.org/semanticxo/main/trees/master/patch_my_xo * put the files patch_my_xo.py and semanticxo.tgz somewhere on the XO * login as root, set patch_my_xo.py to be executable and type ./patch_my_xo.py setup * reboot It's a very harsh script that will just overwrite the standard Journal code and erase all the content. I've tested it on a couple of XO-1. If everything works fine, you won't see any difference. To see what happens in the back-end, open a web browser to http://IP_OF_THE_XO:8080 to see the content of the triple store. I'd now like to implement something to remotely query an XO triple store from an activity. Does anyone know if it is possible to get an IP of a neighbour returned by the presence service? Or, shall I better wrap external calls to the triple store in a DBus API, even if that is all plain HTTP? Christophe On 2 July 2012 17:38, Christophe Guéret c.d.m.gue...@vu.nl wrote: Hi Aleksey, I've packaged redstore to SD:Factory repos ( https://packages.sugarlabs.org/project/monitor?project=SweetsDistribution:Factory ) the package is redstore that provides redstore command and redstored init.d script. Great! Many thanks :) I didn't make it autorun in case if you will use it in the same way as Journal (and Sugar Network database), i.e., keep database in ~/.sugar/PROFILE and start daemon from current user's session. Could you point me to an example on how to set this up? Currently I set the database system wide and start the daemon at boot time but switching to a user session would make sens. btw, it might be useful to create SemanticXO package as well and make it pluggable like it was done with Sugar Network (checkbox in Sweets Distribution Control Panel component). i.e., it should regular DBus service that provides the same Dbus API as sugar-datastore. If you will do that, I think it will be possible to plug either sugar-datastore or SemanticXO in runtime. It is already the case, on my test machines I remove sugar-datastore to put the one provided by SemanticXO instead. That one uses the same DBUS API and service name. I will look into packaging it. I was slowed down on SemanticXO recently, I hope to be able to get back in speed soon... Christophe ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
Re: [Sugar-devel] Call for testing and feedback: alternative Journal implementation
Hi Aleksey, I've packaged redstore to SD:Factory repos ( https://packages.sugarlabs.org/project/monitor?project=SweetsDistribution:Factory ) the package is redstore that provides redstore command and redstored init.d script. Great! Many thanks :) I didn't make it autorun in case if you will use it in the same way as Journal (and Sugar Network database), i.e., keep database in ~/.sugar/PROFILE and start daemon from current user's session. Could you point me to an example on how to set this up? Currently I set the database system wide and start the daemon at boot time but switching to a user session would make sens. btw, it might be useful to create SemanticXO package as well and make it pluggable like it was done with Sugar Network (checkbox in Sweets Distribution Control Panel component). i.e., it should regular DBus service that provides the same Dbus API as sugar-datastore. If you will do that, I think it will be possible to plug either sugar-datastore or SemanticXO in runtime. It is already the case, on my test machines I remove sugar-datastore to put the one provided by SemanticXO instead. That one uses the same DBUS API and service name. I will look into packaging it. I was slowed down on SemanticXO recently, I hope to be able to get back in speed soon... Christophe ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
Re: [Sugar-devel] Call for testing and feedback: alternative Journal implementation
On Wed, May 23, 2012 at 08:04:20AM +0200, Christophe Guéret wrote: Hi, Did you run it on XO laptops with stable OLPC OS (which is based on Fedora-14)? There are no required dep versions for recent redstore release. Yes, all the development testing is done with Sugar 0.94. However, I still found that redstore had extra requirements that were not packaged. But was it Fedora-14? If yes, what redstore version you used (because the recent one can't be build on Fedora-14 due to dependencies' versions). -- Aleksey ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
Re: [Sugar-devel] Call for testing and feedback: alternative Journal implementation
On Wed, May 23, 2012 at 08:31:50AM +0200, Christophe Guéret wrote: But was it Fedora-14? If yes, what redstore version you used (because the recent one can't be build on Fedora-14 due to dependencies' versions). On the XO yes, I suppose, but on my desktops I use Archlinux. I use Redstore 0.5.4. It requires the latest versions of Redland libraries which are not available on Fedora 14. I've made a script that download all the dependencies, compile them and produce a bundle for the XO. This bundle contains the redstore binary (32b) + its dependencies + a script to start redstore. Christophe I've packaged redstore to SD:Factory repos (https://packages.sugarlabs.org/project/monitor?project=SweetsDistribution:Factory) the package is redstore that provides redstore command and redstored init.d script. I didn't make it autorun in case if you will use it in the same way as Journal (and Sugar Network database), i.e., keep database in ~/.sugar/PROFILE and start daemon from current user's session. To attach new repo, either do it manualy (from http://download.sugarlabs.org/packages/SweetsDistribution:/Factory/) or follow SD's regular way (http://wiki.sugarlabs.org/go/Sweets_Distribution). btw, it might be useful to create SemanticXO package as well and make it pluggable like it was done with Sugar Network (checkbox in Sweets Distribution Control Panel component). i.e., it should regular DBus service that provides the same Dbus API as sugar-datastore. If you will do that, I think it will be possible to plug either sugar-datastore or SemanticXO in runtime. -- Aleksey ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
Re: [Sugar-devel] Call for testing and feedback: alternative Journal implementation
As you rightly guessed, there are some parts of the API that still have to be implemented. The things I've tested so far work fine though: launch the emulator, create some entries by using the activities and browse the content of the journal. Christophe On 15 May 2012 00:09, Sascha Silbe si...@activitycentral.com wrote: =?UTF-8?Q?Christophe_Gu=C3=A9ret?= c.d.m.gue...@vu.nl writes: The installation procedure is not super convenient but should be manageable anyway: http://wiki.sugarlabs.org/go/Features/Semantic_Web/Testing I was able to install it on Debian Wheezy by using the distro packages libraptor2-dev, librasqal3-dev, librdf0-dev and python-sparqlwrapper and building redstore [1] (needs either pandoc or a fix to Makefile.am) and python-rdflib [2] from source. Adjusted file paths and python executable name in datastore/bin/datastore-service (inside semanticxo repository) and started it manually. Ran redstore -v in a separate xterm. Sugar (latest mainline master) starts up fine, but trying to resume a file from external storage (USB stick) fails with the following errors: shell.log: {{{ 1337031865.456647 DEBUG root: get_file asked for file with path '/media/Debian Inst/Journal backup of Sascha Silbe (XO-1) (CSN7470103E) on 13.09.2010.xmj' 1337031865.457434 DEBUG root: model.write '' '/media/Debian Inst/Journal backup of Sascha Silbe (XO-1) (CSN7470103E) on 13.09.2010.xmj' True 1337031866.380370 DEBUG root: launch bundle_id=org.sugarlabs.Restore activity_id=a6c7ee02667a96e8e51e5656d22be575506e0e24 object_id=dfe88839-6a71-4e7b-a16a-f0da7d5122ff uri=None 1337031866.521933 ERROR dbus.connection: Exception in handler for D-Bus signal: Traceback (most recent call last): File /usr/lib/python2.7/dist-packages/dbus/connection.py, line 214, in maybe_handle_message self._handler(*args, **kwargs) File /home/sascha.silbe/sugar-jhbuild/install/lib/python2.7/site-packages/sugar/datastore/datastore.py, line 61, in __datastore_created_cb metadata = _get_data_store().get_properties(object_id, byte_arrays=True) File /usr/lib/python2.7/dist-packages/dbus/proxies.py, line 143, in __call__ **keywords) File /usr/lib/python2.7/dist-packages/dbus/connection.py, line 630, in call_blocking message, timeout) DBusException: org.freedesktop.DBus.Python.TypeError: Traceback (most recent call last): File /usr/lib/python2.7/dist-packages/dbus/service.py, line 745, in _message_cb _method_reply_return(connection, message, method_name, signature, *retval) File /usr/lib/python2.7/dist-packages/dbus/service.py, line 252, in _method_reply_return reply.append(signature=signature, *retval) TypeError: Don't know how which D-Bus type to use to encode type NoneType 1337031866.567461 ERROR dbus.connection: Exception in handler for D-Bus signal: Traceback (most recent call last): File /usr/lib/python2.7/dist-packages/dbus/connection.py, line 214, in maybe_handle_message self._handler(*args, **kwargs) File /home/sascha.silbe/sugar-jhbuild/install/lib/python2.7/site-packages/jarabe/journal/model.py, line 507, in _datastore_created_cb created.send(None, object_id=object_id) File /home/sascha.silbe/sugar-jhbuild/install/lib/python2.7/site-packages/sugar/dispatch/dispatcher.py, line 125, in send response = receiver(signal=self, sender=sender, **named) File /home/sascha.silbe/sugar-jhbuild/install/lib/python2.7/site-packages/jarabe/journal/journalactivity.py, line 259, in __model_created_cb self._check_for_bundle(kwargs['object_id']) File /home/sascha.silbe/sugar-jhbuild/install/lib/python2.7/site-packages/jarabe/journal/journalactivity.py, line 284, in _check_for_bundle metadata = model.get(object_id) File /home/sascha.silbe/sugar-jhbuild/install/lib/python2.7/site-packages/jarabe/journal/model.py, line 551, in get metadata = _get_datastore().get_properties(object_id, byte_arrays=True) File /usr/lib/python2.7/dist-packages/dbus/proxies.py, line 143, in __call__ **keywords) File /usr/lib/python2.7/dist-packages/dbus/connection.py, line 630, in call_blocking message, timeout) DBusException: org.freedesktop.DBus.Python.TypeError: Traceback (most recent call last): File /usr/lib/python2.7/dist-packages/dbus/service.py, line 745, in _message_cb _method_reply_return(connection, message, method_name, signature, *retval) File /usr/lib/python2.7/dist-packages/dbus/service.py, line 252, in _method_reply_return reply.append(signature=signature, *retval) TypeError: Don't know how which D-Bus type to use to encode type NoneType }}} org.sugarlabs.Restore-1.log: {{{ 1337031878.858341 DEBUG root: datastore.get Traceback (most recent call last): File /home/sascha.silbe/sugar-jhbuild/install/bin/sugar-activity, line 146, in module main() File /home/sascha.silbe/sugar-jhbuild/install/bin/sugar-activity, line 141, in main instance = create_activity_instance(activity_constructor,
Re: [Sugar-devel] Call for testing and feedback: alternative Journal implementation
=?UTF-8?Q?Christophe_Gu=C3=A9ret?= c.d.m.gue...@vu.nl writes: The installation procedure is not super convenient but should be manageable anyway: http://wiki.sugarlabs.org/go/Features/Semantic_Web/Testing I was able to install it on Debian Wheezy by using the distro packages libraptor2-dev, librasqal3-dev, librdf0-dev and python-sparqlwrapper and building redstore [1] (needs either pandoc or a fix to Makefile.am) and python-rdflib [2] from source. Adjusted file paths and python executable name in datastore/bin/datastore-service (inside semanticxo repository) and started it manually. Ran redstore -v in a separate xterm. Sugar (latest mainline master) starts up fine, but trying to resume a file from external storage (USB stick) fails with the following errors: shell.log: {{{ 1337031865.456647 DEBUG root: get_file asked for file with path '/media/Debian Inst/Journal backup of Sascha Silbe (XO-1) (CSN7470103E) on 13.09.2010.xmj' 1337031865.457434 DEBUG root: model.write '' '/media/Debian Inst/Journal backup of Sascha Silbe (XO-1) (CSN7470103E) on 13.09.2010.xmj' True 1337031866.380370 DEBUG root: launch bundle_id=org.sugarlabs.Restore activity_id=a6c7ee02667a96e8e51e5656d22be575506e0e24 object_id=dfe88839-6a71-4e7b-a16a-f0da7d5122ff uri=None 1337031866.521933 ERROR dbus.connection: Exception in handler for D-Bus signal: Traceback (most recent call last): File /usr/lib/python2.7/dist-packages/dbus/connection.py, line 214, in maybe_handle_message self._handler(*args, **kwargs) File /home/sascha.silbe/sugar-jhbuild/install/lib/python2.7/site-packages/sugar/datastore/datastore.py, line 61, in __datastore_created_cb metadata = _get_data_store().get_properties(object_id, byte_arrays=True) File /usr/lib/python2.7/dist-packages/dbus/proxies.py, line 143, in __call__ **keywords) File /usr/lib/python2.7/dist-packages/dbus/connection.py, line 630, in call_blocking message, timeout) DBusException: org.freedesktop.DBus.Python.TypeError: Traceback (most recent call last): File /usr/lib/python2.7/dist-packages/dbus/service.py, line 745, in _message_cb _method_reply_return(connection, message, method_name, signature, *retval) File /usr/lib/python2.7/dist-packages/dbus/service.py, line 252, in _method_reply_return reply.append(signature=signature, *retval) TypeError: Don't know how which D-Bus type to use to encode type NoneType 1337031866.567461 ERROR dbus.connection: Exception in handler for D-Bus signal: Traceback (most recent call last): File /usr/lib/python2.7/dist-packages/dbus/connection.py, line 214, in maybe_handle_message self._handler(*args, **kwargs) File /home/sascha.silbe/sugar-jhbuild/install/lib/python2.7/site-packages/jarabe/journal/model.py, line 507, in _datastore_created_cb created.send(None, object_id=object_id) File /home/sascha.silbe/sugar-jhbuild/install/lib/python2.7/site-packages/sugar/dispatch/dispatcher.py, line 125, in send response = receiver(signal=self, sender=sender, **named) File /home/sascha.silbe/sugar-jhbuild/install/lib/python2.7/site-packages/jarabe/journal/journalactivity.py, line 259, in __model_created_cb self._check_for_bundle(kwargs['object_id']) File /home/sascha.silbe/sugar-jhbuild/install/lib/python2.7/site-packages/jarabe/journal/journalactivity.py, line 284, in _check_for_bundle metadata = model.get(object_id) File /home/sascha.silbe/sugar-jhbuild/install/lib/python2.7/site-packages/jarabe/journal/model.py, line 551, in get metadata = _get_datastore().get_properties(object_id, byte_arrays=True) File /usr/lib/python2.7/dist-packages/dbus/proxies.py, line 143, in __call__ **keywords) File /usr/lib/python2.7/dist-packages/dbus/connection.py, line 630, in call_blocking message, timeout) DBusException: org.freedesktop.DBus.Python.TypeError: Traceback (most recent call last): File /usr/lib/python2.7/dist-packages/dbus/service.py, line 745, in _message_cb _method_reply_return(connection, message, method_name, signature, *retval) File /usr/lib/python2.7/dist-packages/dbus/service.py, line 252, in _method_reply_return reply.append(signature=signature, *retval) TypeError: Don't know how which D-Bus type to use to encode type NoneType }}} org.sugarlabs.Restore-1.log: {{{ 1337031878.858341 DEBUG root: datastore.get Traceback (most recent call last): File /home/sascha.silbe/sugar-jhbuild/install/bin/sugar-activity, line 146, in module main() File /home/sascha.silbe/sugar-jhbuild/install/bin/sugar-activity, line 141, in main instance = create_activity_instance(activity_constructor, activity_handle) File /home/sascha.silbe/sugar-jhbuild/install/bin/sugar-activity, line 34, in create_activity_instance activity = constructor(handle) File /home/sascha.silbe/Activities/Restore.activity/restore.py, line 532, in __init__ activity.Activity.__init__(self, handle, create_jobject=False) File
Re: [Sugar-devel] Call for testing and feedback: alternative Journal implementation
Eduardo H. Silva hoboprim...@gmail.com writes: I have a question, could activities add new entries to the semantic datastore? For example, Paint and Write when installed would add these items: Painted a picture of,IsActionOf,Paint Wrote,IsActionOf,Write Then you could use this information to be used in the Diary-like view of the Journal (http://wiki.sugarlabs.org/go/Design_Team/Designs/Journal): [...] FWIW, the same thing is possible using the existing data store. You can store arbitrary metadata as key=value pairs. We can also teach sugar-datastore to index a new property called type that would allow us to distinguish between objects to show in the Journal (Object View) and other kinds of entries, e.g. to store some information about actions that may not naturally be coupled to an individual entry. The power of SemanticXO comes from the combination with existing Linked Data / Semantic Web data sets, not from extending the data store to store triples instead of pairs or providing a potentially turing complete ;) query language in addition to Xapian full text searches. Come to think of it, maybe the same goal would be better achieved by a kind of proxy that listens to data store updates, feeding them to a triple store. Most Activities would use the (probably more performant and definitely easier to test) data store API, whereas Activities that benefit from the power of Linked Data can query the triple store via SPARQL. Sascha -- http://sascha.silbe.org/ http://www.infra-silbe.de/ pgpY5UvsHYHj8.pgp Description: PGP signature ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
Re: [Sugar-devel] Call for testing and feedback: alternative Journal implementation
Is fulltext search implemented in existing light weight triple storages like in RDBMS? ie, if you need fulltext search, create particular index. Nope, in fact you do not control the indexes. Triple store implementing just what is in the recommendation index everything that is a literal. For instance if the following triple is inserted ' http://dbpedia.org/resource/Amsterdam http://www.w3.org/2000/01/rdf-schema#label Amsterdam', only the string Amsterdam will be indexed. I mean, if fulltext feature is pluggable, it might make sense to disable it (to decrease resources consumption) and reuse Xapian instead. The reason is that Xapian is mature, fast, and humble in case of memory footprint, fulltext indexer. It is not pluggable but the source code of the triple store is available. It may make sense to dig into the code to disable the index and plug in xapian instead if we find it to improve the performances, or if the regex search in literals is not enough. So far, I did not focus too much on the triple store and just took RedStore that works out of the box on the XO and provide good enough performances. There is another triple store, 4store that would be more efficient and have a lower foot print but making it fit the hardware of the XO will require some hacking. Christophe ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
Re: [Sugar-devel] Call for testing and feedback: alternative Journal implementation
On Thu, May 10, 2012 at 03:00:43PM +0200, Christophe Guéret wrote: How compare SemanticXO journal to our actual implementation, regarding to disk space and performance (in a xo) ... Besides, I'd like to note that apart from the performance difference, which may or may not be in favour of the triple store, there is also a feature difference. Compared to the current data store, the triple store offers a more versatile data store with also has remote access (not secured now). We're currently busy developing activities highlighting how to take advantage from these extra features. Christophe For remote access you mean such feature in particular triple storage implementation? If it is about adding remote access to some of existing triple storage implementations, it might be useful to split the work into local part (implement reliable/fast/resources-consumption-humble local storage) and attaching this storage to the existing formation. For example, there is an ongoing work for Sugar Network[1]. It is a system of servers (master one and decentralized nodes that can be synchronized with each other and with the master one) and clients that work with servers via RESTful API. The system should contain arbitrary content (indexed in Xapian), e.g, activities, activity objects, books, etc. For now, server (node/master) is being implemented as Xapain db with key/value storage (like Journal, but filesystem storage might be replaced by more regular key/value db in the future). Plus, there is an ongoing work for creating client. So, when local triple storage will be good enough for being handling on a XO (Sugar Network is being developed also for working out offline usecase in schools) and Sugar Network will be in more stable stage[2], RDF storage might replace Xapian. [1] http://wiki.sugarlabs.org/go/Sugar_Network [2] http://wiki.sugarlabs.org/go/Platform_Team/Harmonic_Distribution/1.0/Roadmap -- Aleksey ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
Re: [Sugar-devel] Call for testing and feedback: alternative Journal implementation
On Fri, May 11, 2012 at 03:41:03PM +0200, Christophe Guéret wrote: For remote access you mean such feature in particular triple storage implementation? If it is about adding remote access to some of existing triple storage implementations, it might be useful to split the work into local part (implement reliable/fast/resources-consumption-humble local storage) and attaching this storage to the existing formation. For example, there is an ongoing work for Sugar Network[1]. It is a system of servers (master one and decentralized nodes that can be synchronized with each other and with the master one) and clients that work with servers via RESTful API. The system should contain arbitrary content (indexed in Xapian), e.g, activities, activity objects, books, etc. For now, server (node/master) is being implemented as Xapain db with key/value storage (like Journal, but filesystem storage might be replaced by more regular key/value db in the future). Plus, there is an ongoing work for creating client. So, when local triple storage will be good enough for being handling on a XO (Sugar Network is being developed also for working out offline usecase in schools) and Sugar Network will be in more stable stage[2], RDF storage might replace Xapian. Thanks for the pointer! I wasn't aware of that Sugar Network initiave. It is actually the very same thing I am now implementing with some of my students. We are building a system made of different nodes and using triple stores. With it, it is (or will be) possible to store abitrary content and do any kind of query. Our first activity making use of the network will be a social network application allowing to asynchronously send messages across schools and between XOs in a mesh. The system will take benefit from Linked Data principles to uniquely identify every user in the system and efficiently spread the messages. Triple stores are close to key/value stores, with the main difference that they associated two keys for one value. If you set the first key to a particular value, for instance one that refers to a particular journal entry, and then iterate over the other key/values you get something similar to any other key/value store. Currently, that is how the triple-store based journal is implemented: one new resource per journal entry and one triple per key/value of the entry. Every entry is then wrapped into a named graph which is the basic unit transfered across XOs. In other words triple storage doesn't provide full text search? And the right way is using triple storage (for semantic search) and Xapian (for full text search)? I will read more about Sugar Network and see how to related SemanticXO with it. Christophe -- Aleksey ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
Re: [Sugar-devel] Call for testing and feedback: alternative Journal implementation
How compare SemanticXO journal to our actual implementation, regarding to disk space and performance (in a xo) Gonzalo On Wed, May 9, 2012 at 1:45 PM, Christophe Guéret c.d.m.gue...@vu.nlwrote: Dear all, A part of the project SemanticXO concerns the implementation of an alternative Journal implementation making use of the triple store backend. Triple store are data bases optimised to store factual information in the form of statements linking a subject, a property and a value. This makes them particularly fit to store key/value metadata, such as the one the Journal uses. The feature proposal for SemanticXO gives more detailled about what this is about: http://wiki.sugarlabs.org/go/Features/Semantic_Web I've just finished removing a couple of bugs and would be interested in getting a first round of feedback. The installation procedure is not super convenient but should be manageable anyway: http://wiki.sugarlabs.org/go/Features/Semantic_Web/Testing The code is based on two parts: * a module common that allows to store arbitrary data in the triple store * a module datastore which uses common to store the data from the Journal I'm now working on implementing other usage examples for common. In the Journal, the most visible change is the possibility to browse the content through the SPARQL interface of the triple store. This means it is possible, and rather easy, to gather statistics about the activities performed in a class room or do backup of the metadata without having to interupt any other activity. Looking forward to your feedback, cheers, Christophe ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
Re: [Sugar-devel] Call for testing and feedback: alternative Journal implementation
How compare SemanticXO journal to our actual implementation, regarding to disk space and performance (in a xo) However I agree this is an important question, I can not give any proper answer to it yet. Some time ago I did some performance test for the triple store: http://semweb4u.wordpress.com/2011/11/02/does-it-scale/ The results were not as good as I would have expected but were still ok. Now, it would be good to run a comparative benchmark to have the same kind of curves for both the genuine journal and the one using the triple store. Is there maybe something I could use for that? To generate these graphs I used a custom made record generator that was inserting data and querying it. If nothing else is available I could use that code again. Besides, I'd like to note that apart from the performance difference, which may or may not be in favour of the triple store, there is also a feature difference. Compared to the current data store, the triple store offers a more versatile data store with also has remote access (not secured now). We're currently busy developing activities highlighting how to take advantage from these extra features. Christophe ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
[Sugar-devel] Call for testing and feedback: alternative Journal implementation
Dear all, A part of the project SemanticXO concerns the implementation of an alternative Journal implementation making use of the triple store backend. Triple store are data bases optimised to store factual information in the form of statements linking a subject, a property and a value. This makes them particularly fit to store key/value metadata, such as the one the Journal uses. The feature proposal for SemanticXO gives more detailled about what this is about: http://wiki.sugarlabs.org/go/Features/Semantic_Web I've just finished removing a couple of bugs and would be interested in getting a first round of feedback. The installation procedure is not super convenient but should be manageable anyway: http://wiki.sugarlabs.org/go/Features/Semantic_Web/Testing The code is based on two parts: * a module common that allows to store arbitrary data in the triple store * a module datastore which uses common to store the data from the Journal I'm now working on implementing other usage examples for common. In the Journal, the most visible change is the possibility to browse the content through the SPARQL interface of the triple store. This means it is possible, and rather easy, to gather statistics about the activities performed in a class room or do backup of the metadata without having to interupt any other activity. Looking forward to your feedback, cheers, Christophe ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
Re: [Sugar-devel] Call for testing and feedback: alternative Journal implementation
2012/5/9 Christophe Guéret c.d.m.gue...@vu.nl: Dear all, A part of the project SemanticXO concerns the implementation of an alternative Journal implementation making use of the triple store backend. Triple store are data bases optimised to store factual information in the form of statements linking a subject, a property and a value. This makes them particularly fit to store key/value metadata, such as the one the Journal uses. The feature proposal for SemanticXO gives more detailled about what this is about: http://wiki.sugarlabs.org/go/Features/Semantic_Web I've just finished removing a couple of bugs and would be interested in getting a first round of feedback. The installation procedure is not super convenient but should be manageable anyway: http://wiki.sugarlabs.org/go/Features/Semantic_Web/Testing The code is based on two parts: * a module common that allows to store arbitrary data in the triple store * a module datastore which uses common to store the data from the Journal I'm now working on implementing other usage examples for common. In the Journal, the most visible change is the possibility to browse the content through the SPARQL interface of the triple store. This means it is possible, and rather easy, to gather statistics about the activities performed in a class room or do backup of the metadata without having to interupt any other activity. Looking forward to your feedback, cheers, Christophe ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel Hi, Followed the steps in the wiki page. At the last step, sugar-emulator crashes when launching. This is running sugar 0.96.1 in Fedora 17. I renamed ~/.sugar to another name before launching sugar-emulator: ** (process:21449): WARNING **: Trying to register gtype 'GMountMountFlags' as enum when in fact it is of type 'GFlags' ** (process:21449): WARNING **: Trying to register gtype 'GDriveStartFlags' as enum when in fact it is of type 'GFlags' ** (process:21449): WARNING **: Trying to register gtype 'GSocketMsgFlags' as enum when in fact it is of type 'GFlags' Gtk-Message: Failed to load module pk-gtk-module GNOME_KEYRING_CONTROL=/run/user/jobezone/keyring-rHyu00 GNOME_KEYRING_PID=21469 ** (process:21456): WARNING **: Trying to register gtype 'GMountMountFlags' as enum when in fact it is of type 'GFlags' ** (process:21456): WARNING **: Trying to register gtype 'GDriveStartFlags' as enum when in fact it is of type 'GFlags' ** (process:21456): WARNING **: Trying to register gtype 'GSocketMsgFlags' as enum when in fact it is of type 'GFlags' ** Message: pygobject_register_sinkfunc is deprecated (HippoCanvasBox) Traceback (most recent call last): File /usr/bin/sugar-session, line 289, in module main() File /usr/bin/sugar-session, line 228, in main from jarabe.desktop import homewindow File /usr/lib/python2.7/site-packages/jarabe/desktop/homewindow.py, line 25, in module from jarabe.desktop.meshbox import MeshBox File /usr/lib/python2.7/site-packages/jarabe/desktop/meshbox.py, line 48, in module from jarabe.journal import misc File /usr/lib/python2.7/site-packages/jarabe/journal/misc.py, line 26, in module from sugar.activity import activityfactory File /usr/lib/python2.7/site-packages/sugar/activity/activityfactory.py, line 34, in module from sugar.datastore import datastore File /usr/lib/python2.7/site-packages/sugar/datastore/datastore.py, line 77, in module _get_data_store() File /usr/lib/python2.7/site-packages/sugar/datastore/datastore.py, line 51, in _get_data_store DS_DBUS_PATH), File /usr/lib/python2.7/site-packages/dbus/bus.py, line 244, in get_object follow_name_owner_changes=follow_name_owner_changes) File /usr/lib/python2.7/site-packages/dbus/proxies.py, line 241, in __init__ self._named_service = conn.activate_name_owner(bus_name) File /usr/lib/python2.7/site-packages/dbus/bus.py, line 183, in activate_name_owner self.start_service_by_name(bus_name) File /usr/lib/python2.7/site-packages/dbus/bus.py, line 281, in start_service_by_name 'su', (bus_name, flags))) File /usr/lib/python2.7/site-packages/dbus/connection.py, line 630, in call_blocking message, timeout) dbus.exceptions.DBusException: org.freedesktop.DBus.Error.Spawn.ChildExited: Process /usr/bin/datastore-service exited with status 1 g_dbus_connection_real_closed: Remote peer vanished with error: Underlying GIOStream returned 0 bytes on an async read (g-io-error-quark, 0). Exiting. Aviso do gestor de janelas: Erro IO fatal 11 (Resource temporarily unavailable) no ecrã ':30'. This last line translates to: TRANS:window manager warning: [...] in screen':30'.] Eduardo ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
Re: [Sugar-devel] Call for testing and feedback: alternative Journal implementation
2012/5/9 Eduardo H. Silva hoboprim...@gmail.com: 2012/5/9 Christophe Guéret c.d.m.gue...@vu.nl: Dear all, A part of the project SemanticXO concerns the implementation of an alternative Journal implementation making use of the triple store backend. Triple store are data bases optimised to store factual information in the form of statements linking a subject, a property and a value. This makes them particularly fit to store key/value metadata, such as the one the Journal uses. The feature proposal for SemanticXO gives more detailled about what this is about: http://wiki.sugarlabs.org/go/Features/Semantic_Web I've just finished removing a couple of bugs and would be interested in getting a first round of feedback. The installation procedure is not super convenient but should be manageable anyway: http://wiki.sugarlabs.org/go/Features/Semantic_Web/Testing The code is based on two parts: * a module common that allows to store arbitrary data in the triple store * a module datastore which uses common to store the data from the Journal I'm now working on implementing other usage examples for common. In the Journal, the most visible change is the possibility to browse the content through the SPARQL interface of the triple store. This means it is possible, and rather easy, to gather statistics about the activities performed in a class room or do backup of the metadata without having to interupt any other activity. Looking forward to your feedback, cheers, Christophe ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel Hi, Followed the steps in the wiki page. At the last step, sugar-emulator crashes when launching. This is running sugar 0.96.1 in Fedora 17. I renamed ~/.sugar to another name before launching sugar-emulator: ** (process:21449): WARNING **: Trying to register gtype 'GMountMountFlags' as enum when in fact it is of type 'GFlags' ** (process:21449): WARNING **: Trying to register gtype 'GDriveStartFlags' as enum when in fact it is of type 'GFlags' ** (process:21449): WARNING **: Trying to register gtype 'GSocketMsgFlags' as enum when in fact it is of type 'GFlags' Gtk-Message: Failed to load module pk-gtk-module GNOME_KEYRING_CONTROL=/run/user/jobezone/keyring-rHyu00 GNOME_KEYRING_PID=21469 ** (process:21456): WARNING **: Trying to register gtype 'GMountMountFlags' as enum when in fact it is of type 'GFlags' ** (process:21456): WARNING **: Trying to register gtype 'GDriveStartFlags' as enum when in fact it is of type 'GFlags' ** (process:21456): WARNING **: Trying to register gtype 'GSocketMsgFlags' as enum when in fact it is of type 'GFlags' ** Message: pygobject_register_sinkfunc is deprecated (HippoCanvasBox) Traceback (most recent call last): File /usr/bin/sugar-session, line 289, in module main() File /usr/bin/sugar-session, line 228, in main from jarabe.desktop import homewindow File /usr/lib/python2.7/site-packages/jarabe/desktop/homewindow.py, line 25, in module from jarabe.desktop.meshbox import MeshBox File /usr/lib/python2.7/site-packages/jarabe/desktop/meshbox.py, line 48, in module from jarabe.journal import misc File /usr/lib/python2.7/site-packages/jarabe/journal/misc.py, line 26, in module from sugar.activity import activityfactory File /usr/lib/python2.7/site-packages/sugar/activity/activityfactory.py, line 34, in module from sugar.datastore import datastore File /usr/lib/python2.7/site-packages/sugar/datastore/datastore.py, line 77, in module _get_data_store() File /usr/lib/python2.7/site-packages/sugar/datastore/datastore.py, line 51, in _get_data_store DS_DBUS_PATH), File /usr/lib/python2.7/site-packages/dbus/bus.py, line 244, in get_object follow_name_owner_changes=follow_name_owner_changes) File /usr/lib/python2.7/site-packages/dbus/proxies.py, line 241, in __init__ self._named_service = conn.activate_name_owner(bus_name) File /usr/lib/python2.7/site-packages/dbus/bus.py, line 183, in activate_name_owner self.start_service_by_name(bus_name) File /usr/lib/python2.7/site-packages/dbus/bus.py, line 281, in start_service_by_name 'su', (bus_name, flags))) File /usr/lib/python2.7/site-packages/dbus/connection.py, line 630, in call_blocking message, timeout) dbus.exceptions.DBusException: org.freedesktop.DBus.Error.Spawn.ChildExited: Process /usr/bin/datastore-service exited with status 1 g_dbus_connection_real_closed: Remote peer vanished with error: Underlying GIOStream returned 0 bytes on an async read (g-io-error-quark, 0). Exiting. Aviso do gestor de janelas: Erro IO fatal 11 (Resource temporarily unavailable) no ecrã ':30'. This last line translates to: TRANS:window manager warning: [...] in screen':30'.] Eduardo Ah, the error actually starts with /usr/bin/sugar-datastore (which I replaced with the one included in the
Re: [Sugar-devel] Call for testing and feedback: alternative Journal implementation
Hi Eduardo, Thanks for testing! Ah, the error actually starts with /usr/bin/sugar-datastore (which I replaced with the one included in the semanticXO directory): datastore-service:13:module:ImportError: No module named semanticstore.datastore Have you modified the first lines of this script to include the path were the code his? Christophe ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
Re: [Sugar-devel] Call for testing and feedback: alternative Journal implementation
2012/5/9 Christophe Guéret c.d.m.gue...@vu.nl: I did modify, but mistyped them. I get a different error now: connection.py:630:call_blocking:DBusException: org.freedesktop.DBus.Error.Spawn.ChildExited: Process /usr/bin/datastore-service exited with status 1 Traceback (most recent call last): File /usr/bin/sugar-session, line 289, in module main() File /usr/bin/sugar-session, line 228, in main from jarabe.desktop import homewindow File /usr/lib/python2.7/site-packages/jarabe/desktop/homewindow.py, line 25, in module from jarabe.desktop.meshbox import MeshBox File /usr/lib/python2.7/site-packages/jarabe/desktop/meshbox.py, line 48, in module from jarabe.journal import misc File /usr/lib/python2.7/site-packages/jarabe/journal/misc.py, line 26, in module from sugar.activity import activityfactory File /usr/lib/python2.7/site-packages/sugar/activity/activityfactory.py, line 34, in module from sugar.datastore import datastore File /usr/lib/python2.7/site-packages/sugar/datastore/datastore.py, line 77, in module _get_data_store() File /usr/lib/python2.7/site-packages/sugar/datastore/datastore.py, line 51, in _get_data_store DS_DBUS_PATH), File /usr/lib/python2.7/site-packages/dbus/bus.py, line 244, in get_object follow_name_owner_changes=follow_name_owner_changes) File /usr/lib/python2.7/site-packages/dbus/proxies.py, line 241, in __init__ self._named_service = conn.activate_name_owner(bus_name) File /usr/lib/python2.7/site-packages/dbus/bus.py, line 183, in activate_name_owner self.start_service_by_name(bus_name) File /usr/lib/python2.7/site-packages/dbus/bus.py, line 281, in start_service_by_name 'su', (bus_name, flags))) File /usr/lib/python2.7/site-packages/dbus/connection.py, line 630, in call_blocking message, timeout) DBusException: org.freedesktop.DBus.Error.Spawn.ChildExited: Process /usr/bin/datastore-service exited with status 1 If you just start the datastore-service, does it work? Did redstore receive any query before crashing? Ah, running datastore-service standalone showed that it was looking for the python module rdflib . After install python-rdflib package, it complains of missing SPARQLWrapper (python?) module. Searching yum for sparql only shows the package rasqal which I have installed. Eduardo ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
Re: [Sugar-devel] Call for testing and feedback: alternative Journal implementation
Ah, running datastore-service standalone showed that it was looking for the python module rdflib . After install python-rdflib package, it complains of missing SPARQLWrapper (python?) module. Searching yum for sparql only shows the package rasqal which I have installed. Ok, I totally forgot about the dependencies :-P This is the SPARQLWrapper you need: http://sparql-wrapper.sourceforge.net/ Please let me know how you install it on Fedora and I'll update the wiki. Christophe ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
Re: [Sugar-devel] Call for testing and feedback: alternative Journal implementation
2012/5/9 Christophe Guéret c.d.m.gue...@vu.nl: Ah, running datastore-service standalone showed that it was looking for the python module rdflib . After install python-rdflib package, it complains of missing SPARQLWrapper (python?) module. Searching yum for sparql only shows the package rasqal which I have installed. Ok, I totally forgot about the dependencies :-P This is the SPARQLWrapper you need: http://sparql-wrapper.sourceforge.net/ Please let me know how you install it on Fedora and I'll update the wiki. Christophe There were also some dependencies I needed to install beforehand: To compile redstore: raptor2-devel rasqal-devel redland-devel To use semanticstore: python-rdflib and of course SPARQLWrapper, downloaded it from your link, extracted, and ran inside its directory (as root): python setup.py install Launches fine for me now. Eduardo ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
Re: [Sugar-devel] Call for testing and feedback: alternative Journal implementation
2012/5/9 Eduardo H. Silva hoboprim...@gmail.com: 2012/5/9 Christophe Guéret c.d.m.gue...@vu.nl: Ah, running datastore-service standalone showed that it was looking for the python module rdflib . After install python-rdflib package, it complains of missing SPARQLWrapper (python?) module. Searching yum for sparql only shows the package rasqal which I have installed. Ok, I totally forgot about the dependencies :-P This is the SPARQLWrapper you need: http://sparql-wrapper.sourceforge.net/ Please let me know how you install it on Fedora and I'll update the wiki. Christophe There were also some dependencies I needed to install beforehand: To compile redstore: raptor2-devel rasqal-devel redland-devel To use semanticstore: python-rdflib and of course SPARQLWrapper, downloaded it from your link, extracted, and ran inside its directory (as root): python setup.py install Launches fine for me now. Eduardo But nothing is saved to the Journal, neither you can copy a clipping from the clipboard or copy a document from Documents. Here's the datastore log: None process 22342: Array or variant type requires that type variant be written, but end_dict_entry was written. The overall signature expected here was 'a{sv}' and we are on byte 3 of that signature. D-Bus not built with -rdynamic so unable to print a backtrace Start data store And shell log: :30 1336596606.175720 ERROR dbus.proxies: Introspect error on org.freedesktop.ohm:/org/freedesktop/ohm/Keystore: dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.ohm was not provided by any .service files 1336596606.177181 ERROR root: Cannot unfreeze the DCON 1336596611.067728 WARNING root: No gtk.AccelGroup in the top level window. 1336596611.072582 WARNING root: No gtk.AccelGroup in the top level window. /usr/lib/python2.7/site-packages/sugar/graphics/palette.py:412: Warning: g_object_set_qdata: assertion `G_IS_OBJECT (object)' failed _sugarext.Menu.do_insert(self, item, position) /usr/lib/python2.7/site-packages/jarabe/desktop/homewindow.py:73: Warning: g_object_set_qdata: assertion `G_IS_OBJECT (object)' failed self.add(self._home_box) /usr/bin/sugar-session:273: Warning: g_object_set_qdata: assertion `G_IS_OBJECT (object)' failed gtk.main() :30 1336596620.757267 ERROR root: Launcher was not registered for None 1336596621.137413 WARNING root: No gtk.AccelGroup in the top level window. 1336596621.141241 WARNING root: No gtk.AccelGroup in the top level window. 1336596621.144938 WARNING root: No gtk.AccelGroup in the top level window. 1336596621.148422 WARNING root: No gtk.AccelGroup in the top level window. /usr/lib/python2.7/site-packages/jarabe/frame/framewindow.py:132: Warning: g_object_set_qdata: assertion `G_IS_OBJECT (object)' failed self._container.get_child().pack_start(child, expand=expand, fill=fill) ** Message: pygobject_register_sinkfunc is deprecated (GstObject) 1336596623.650210 WARNING root: _Account.__set_current_activity_cb Traceback (most recent call last): File /usr/lib/python2.7/site-packages/jarabe/frame/activitiestray.py, line 251, in __activity_removed_cb button = self._buttons[home_activity] KeyError: Activity object at 0x90dc3c4 (SugarHomeActivity at 0x8ecc830) 1336596627.123099 WARNING root: No gtk.AccelGroup in the top level window. 1336596627.123411 WARNING root: No gtk.AccelGroup in the top level window. /usr/lib/python2.7/site-packages/jarabe/desktop/homewindow.py:177: Warning: g_object_set_qdata: assertion `G_IS_OBJECT (object)' failed self.add(self._home_box) 1336596627.140964 WARNING root: _Account.__set_current_activity_cb /usr/lib/python2.7/site-packages/sugar/graphics/palette.py:211: Warning: g_object_set_qdata: assertion `G_IS_OBJECT (object)' failed if menu_item.props.submenu is not None: 1336596996.768278 WARNING root: _Account.__set_current_activity_cb 1336597052.709367 WARNING root: No gtk.AccelGroup in the top level window. 1336597052.710177 WARNING root: No gtk.AccelGroup in the top level window. 1336597052.717397 WARNING root: _Account.__set_current_activity_cb 1336597052.890916 ERROR root: set_active() failed: org.freedesktop.DBus.Error.NoReply: Message did not receive a reply (timeout by message bus) /usr/lib/python2.7/site-packages/jarabe/journal/palettes.py:350: Warning: g_object_set_qdata: assertion `G_IS_OBJECT (object)' failed self.append(menu_item) /usr/lib/python2.7/site-packages/jarabe/journal/palettes.py:192: Warning: g_object_set_qdata: assertion `G_IS_OBJECT (object)' failed self.append(clipboard_menu) /usr/lib/python2.7/site-packages/jarabe/journal/palettes.py:324: Warning: g_object_set_qdata: assertion `G_IS_OBJECT (object)' failed self.append(menu_item) /usr/lib/python2.7/site-packages/sugar/graphics/palette.py:361: Warning: g_object_set_qdata: assertion `G_IS_OBJECT (object)' failed self.menu.embed(self._menu_box) /usr/lib/python2.7/site-packages/sugar/graphics/palette.py:367: Warning:
Re: [Sugar-devel] Call for testing and feedback: alternative Journal implementation
2012/5/9 Christophe Guéret c.d.m.gue...@vu.nl: Launches fine for me now. Great! Now, most of the fun happens at http://localhost:8080 After having created some Journal entries, go to this address and display the content of named graphs to see how the records are turned into triples. The port is public so you can also browse the content of a journal remotely. Christophe Hm, the Journal doesn't show entries (says Your Journal is empty) but I do see the entries in localhost:8080 . Eduardo ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel