Indeed it moved
, forward I hope. Anyway my new typo blog resides there (http://blog.cedricmesnage.org/). Go check it out and update your feed readers (feed) as I won’t publish here no more.
See you on the other side!
Indeed it moved
, forward I hope. Anyway my new typo blog resides there (http://blog.cedricmesnage.org/). Go check it out and update your feed readers (feed) as I won’t publish here no more.
See you on the other side!
I just released the first version (well already 0.0.3, after small fixes) of RDFa On rails. It is a quite early release so don’t expect too much
. For those urged to try it just do :
sudo gem install rdfa
You can find the API documentation and the project website for more info. Basically it is a library which provides some abstractions to developers by means of helper methods to publish RDFa data.
The package comes with a theme for typo, the blogging system built on top of rails. To install it just go in the themes folder or your typo installation and type:
rdfa-typo
Then activate the theme and that’s it, your blog articles are published embedding RDFa.
In your rails apps try the following, for instance to publish a resource :
<% rdfa_resource url_for(resource) do %>
<h3><%= rdfa_label resource.name %></h3>
<%= rdfa_description resource.text %>
<h4>Created by : <%= rdfa_creator url_for(resource.author)%></h4>
<% end %>
There is still much work do be done, help and comment is welcome.
I just discovered a web2.0 app I didn’t know of… dpolls.com
dPolls.com is a website dedicated to providing the best online polling experience available. Make your opinion heard by voting to any poll you’d like.Let other people know what you think, and find out if people think the same as you.
Then, I thought, well let’s try it and create a poll… Here it is, you have 6 months to answer it…:
ahah, doesn’t work, the HTML code you have to copy/paste (as any other widget, like google ads, del.icio.us or youtube videos…) is just horrible, they could definitely make it better by embedding the whole thing in a javascript script for instance… it seems wordpress doesn’t like it at all as it uses an iframe it removes it from the post, stupid restrictions… here is my last try, otherwise you can always go to the poll by following this link :
Too bad it doesn’t work, the idea is good…
I got a new macbook pro at work, how wonderful is that? Typical users would use the migration assistant to “migrate” their user data and applications from a computer to another. This seems great, but, first when you are a developer or simply you use some open source tools, the migration won’t move your latex or rails install, so you’ll have to do it yourself, by re-installing, also because some of these things are compiled, and between the powerbook and the macbook the biggest difference besides the integrated webcam is the processor… Then I used the migration assistant to migrate my account in the last 4 mac I had, this means that I cary lots of unuseful stuff such as old applications I don’t use, Libraries for applications I don’t even have anymore and crap data. This is time to put an end to this and re-organize.
First thing, mount your old computer using firewire or through the network (I use both firewire for the first big thing, then the wireless Lan). Then copy some libraries from the Library folder of your old user, I moved there the Mail folder, Journler, Firefox, well shortly support for the applications I use the most. Then move also your preferences (Library/preferences) again for the apps you use the most. Move the iTunes folder to your music and the applciations you want to keep (Textmate, Journler, omnigraffle, mplayer, vlc…). We are done with what the Migration assistant would have done.
Then for open source software I use macport, which is a package manager. It first needs you to install the developer tools (needs the gcc compiler and header files) so you do install this (I downloaded it from the web, but you also have it on your osx cds). Then download and install macport. So what do we want to install with this? Use the terminal to type the following commands. oh and don’t forget to add “/opt/local/bin” to your path in /etc/profile.
Latex:
sudo port install tetex
Versionning systems:
sudo port install subversion
sudo port install bazaar-ng
Ruby and Rubygems:
sudo port install ruby
sudo port install rb-rubygems
I don’t like mysql for development I simply use sqlite:
sudo port install sqlite3
Then the gems install for rails:
sudo gem install -y rails
sudo gem install -y sqlite3-ruby
Everything is set, I tested rails, svn and latex compiling with pdflatex… all works fine. Now I need to re-organize my data and that’s another story…

Connecting and Sharing Memories and Cultural Experiences
Two days ago, we submitted an EU project proposal for a project named “Mnemosyne”, I though I would not speak of it before the feedback, but as thomas, our project coordinator, already blogged about it, I thought I could do it as well.
You can find the abstract on thomas’ blog, so I won’t copy paste it here… So what’s the idea? well here is Mnemosyne recipe:
Here it is you’ve got the idea. So some resources now:
I just read about tim’s talk in WWW2007 about web science. I do not believe web science is a good thing or a good name, but still it seems quite interesting and important to do more scientific work around the web. It is indeed very true that the web is full of phenomena that you can track measure, simulate etc.. But what are these phenomena essentially? Human activity and I would say there is already a science studying humans, social sciences in the english speaking world. So why the need of a new science, I don’t know except it might be the next thing in the “I want everything on and about the web” phenomenon…
Anyway, this is not what interest me here. Tim presented the process, the scientific process that web science followed and follows. And what a great coincidence, it is graphically so similar to the process we have been developing in Nepomuk and described already in this blog that I can’t resist to look at both here. So here they are:
So here they are, tim’s cycle on the left, cédric’s cycle on the right. Similarities, well they both are cycles (there is always something more to do…next iteration) then they don’t describe exactly the same thing, one interesting thing are the terms “complexity/creativity” which maps in the other diagram to bubbles “usages/abstractions”(well now it’s abstract architecture as the diagram is more engineering oriented, but if you dig in earlier posts, you’ll find “abstractions” emerging from “creation”), so although we use different terminology, these are similar. Difference, well the main one is tim’s cycle goes only one way (forward engineering/inductive methodology) when the other one spins both ways(inductive/deductive , forward engineering/reverse engineering). Anyway, there could be much more said about this, both are great, we are going somewhere.
long time not blogged… here is a random thought which grows in my mind for some time now. Leo blogged some time ago about web 3.0 being something like this definition:
web3.0 = web2.0 + semantic web
Well this brings me to thinking again at what’s web2.0 about. And why did we need a new name for it, it is still the web isn’t it?
I believe there is no new technology with web2.0, it is the concept we have of the web which changed. With web1.0 we understood the web as the set of http documents and links between them. Then we realised that the web includes also the people authoring these documents or browsing them, the very idea of the web changed and we needed to change the name to distinguish between the two concepts leading to this two definitions:
web = set of interconnected documents
web2.0 = web + humans
Then following these definitions what would be the web3.0, I believe the next change of concept will be when we will understand that there is no difference between the web and the world, both being a set of interconnected thoughts, leading to the definition:
web3.0 = a set of interconnected thoughts + humans
Where is the semantic web in all that? I don’t know.
Here is the principle, every word of this post is a link. That’s what I believe the semantic web will be, everything interconnected, every piece of information linked. But as said in the title, it is a prototype, so the links actually are random links given by delicious and not related at all with the actual words themselves. So this is kind of a dummy semantic web blog post. But I am sure you get the idea.
Here is the ruby code I wrote to do this:
I am sure one can do this with wikipedia
require 'net/http'
require 'uri'
text = ARGV[0]
sentences = text.split('.')
linked_sentences = sentences.collect do |sentence|
propositions = sentence.split(',')
linked_propositions = propositions.collect do |proposition|
words = proposition.split(' ')
linked_words=words.collect do |word|
ref = Net::HTTP.get_response(URI.parse(
'http://del.icio.us/recent?random&min=10'))['location']
"<a href=\"#{ref}\">#{word}</a>"
end
linked_words.join(" ")
end
linked_propositions.join(", ")
end
puts linked_text = linked_sentences.join(". ")

Together with Eyal, we started the implementation of SWORD (Semantic Web On Rails Development). SWORD is a Ruby on Rails plugin, which based on activeRDF offers generators to start your semantic web rails application. Viewing, listing, editing, fetching of RDF data comes out of the box, together with simple views.
SWORD is still under development, and we don’t have a release date, but we believe it will be soon… We use bazaar as a versioning system, you can find the launchpad platform for sword here.
Generating a foaf app:
$ cd your_rails_app $ ./script/generate scabbard Person foaf 'http://xmlns.com/foaf/0.1'
In this week meeting we also discussed the architecture of Nepomuk. When it is agreed it is a Service Oriented Architecture, we had to discuss if it is a middleware or something different. The result is that Nepomuk is a middleware offering social and semantic services as previous middleware offered communication services…
here is a first draft of the architecture:
This week we had a Nepomuk meeting here in Lugano together of the architecture work package leader, Siegfried. We discussed the global organization of the project, next steps to go, the overview of the architecture…
And the development cycle came back, so we refined it as nexts steps will cover places of the cycle that were not covered before, as recovering the existing architecture for instance, or construct the architecture from the required functionalities.
Thomas and siegfried will present this in the project pre review next week I believe.
So here is the new version:
Youuf, I just did my presentation of the ‘Specifying the Collaborative Tagging System’ paper in SAAW. My talk was the first, I was late (the shuttle was late actually), stressed out, jet lagged(I woke up at 4 am). So I consider that my talk was not so good… I hope it is not the case of the people in the room.
For those who were not here, here are the slides :
The proceedings of SAAW are available online, including our paper and others on collaborative tagging and semantic annotation. I was reviewer for this workshop, and it was my first time as a reviewer. I must say that the emotion of seeing online the papers I reviewed together with mine is insightful on the scientific joy one can feel…
My presentation is on Sunday, I’ll orient it on the concept of system stressing on the way humans use language to organize their thoughts through observation. I won’t really present the specs, but will give an overview of iTag, the application we are developing on top of Nepomuk which bring collaborative tagging on the semantic desktop.
Speaking with my mother while using our macs, an idea for a simple but useful (it is usually the case) application emerged. It is difficult for end users to know what happens when using your keyboard especially that it depends on the application which is active. If press ‘F’ in the DVD player it plays fullscreen, but in mplayer it is ‘apple + F’ etc…
This application would display your keyboard on a side of the screen and color keys which leads to an action, if you pass your mouse on a colored key (colors depending on the modifier, ctrl, opt, apple, fn…) the action description appears.
If anyone knows of an existing application or is willing to use the idea to do it himself, notify us here. Thanks!
“Steve.museum: An Ongoing Experiment in Social Tagging, Folksonomy, and Museums” is a paper written by Susan Chun, Doug Hiwiller, Jennifer Trant and Bruce Wyman. I read it today. I already had seen the presentation of steve.museum at the collaborative web tagging workshop and started a collaborative tagging application for museums myself.
The paper introduce the idea of using tagging as an indexation and catalogisation system for museums artworks. According to their “proof of concept” data, 80% of the terms used in tagging artworks through their prototype were new terms, meaning that they did not appear in annotations of the artwork before.
One quote I enjoyed a lot:
Tagging appeals because it represents a dialogue between the viewer and the work…
It is very true indeed, what else better than language to express ourselves, what else better than terms to describe things. This fits with our definition of tagging (see previous posts) in which the tagging process is viewed as a process of sharing knowledge through the transcription of observations.
Although the design the introduce in the paper (this was the last year’s paper, so the design might have change in between) seems rather unclear. It goes into different descriptions of possible relationships between users, “tags” and images or objects…
Antoher point of difficulty, it looks like they wish to automatize the inclusion process of artworks, meaning having some tools to directly export a museum database to the system, well that’s great, if it is feasable. I would rather create a system in which you add artworks by hand (like in del.icio.us), and add automatic systems for large museums(which can be done separately and specifically). Otherwise the small museums will never get there…
They also seem very concerned by the way to atract people to tag. Making games, interactive, showing the gift of tagging to the community… Well I believe it has to be useful so that people tag. Useful directly for them, as in del.icio.us, or flickr.
Otherwise it was a nice paper to read, refreshing my mind and giving me confidence in the design we started. I wish steve.museum to grow…
Jochen wuttke pointed a problem in the specifications of the collaborative tagging system, especially in the way TLC was evaluating it. In fact, I didn’t spend enough time on the model checking part of the specifications.
So, I am playing with it to find out how to use efficiently TLC, to get more confidence in the consistency of the specifications. The simple example with one human, one term, one object works. The operations read and write occur and actually generate the expected states. But when we give bigger sets as input of tlc, it has strange behaviors (it does not generate states at all, at least not enough). So there might be a problem in the way we use sets in the specifications (or in the way tlc evaluates them)…
It is painful, but at the same time exciting as I didn’t look at the specs for two months. It seems like a good way to improve my skills with TLA+ before starting to specify other systems.
Once I’ll have the specifications corrected, I’ll put them here. I also need to find a way to use tlc to ’show’ the correctness of the specs… I might try it here too.
Today I gave a talk in the Master of Communication for Curltural Heritage in Lugano in course held by the curator(Peter Samis) of the San Francisco Museum of Modern Art. The topic was collaborative tagging principles and how to apply this paradigm to museums, linking museums together.
Here are my slides:
Ciao, Some students just showed me a project they have done for a new company, smartwebid. This is a great project which gives you a unique identifier to identify yourself on the web (or even outside if you enjoy it…)
Looks like the course Jeff and I gave was useful, Hurrah Ruby on Rails!
here is my id:
![]()
And their great logo :
![]()
Okay, we just submitted the final version of our paper and here it is.
mesnagejazayeri06bfinal.pdf
Have a good reading!
Our paper got accepted at the SAAW workshop. We are quite happy… I’ll post the final version here tomorrow. It will be my first time in the united states… I hope the presentation to be good and that I manage to motivate our work on specifying the abstractions of systems dealt by new web applications such as collaborative tagging.
Today I gave a talk in the summer school of the title in salerno which is a wonderful place in italy.
Here are the slides(ascientificsoftwaresystemdevelopmentmethodology.pdf).
Here is a definition of science I came up with last week end while reading Popper.
Science is a process by which humans transcript and corrobore their understanding of the world in the form of universal statements.
A scientific methodology describes precisely this process for a particular type of phenomena.
The development cycle is part of a scientific methodology with human usages as studied phenomena.
Speaking with a friend of mine, Cyril, we understood that there is no pure inductive logic in Science. Every scientist follows a hypothetic-deductive methodology, even if he does not know it. An empirical investigation might inductively give rise to scientific propositions. These propositions were already known to the scientist unconsciously or if you prefer not to go into psychology, by intuition. One shouldn’t refuse his intuitions, but follow them and express them. Inductive logic refuses intuitions, it appears irrecevable as it has no empirical basis. It is intuition which pushes the empirical scientist to investigates a specific type of phenomenon.

I started to read ‘The Logic of Scientific Discovery’ by Karl Popper, and reading the preface, which was already quite exciting, one paragraph stucked me :
“Thus the method of constructing artificial model languages is incapable of tackling the problems of the growth of knowledge; and it is even less able to do so than the method of analysing ordinary languages. It is a result of their poverty that they yield only the most crude and the most misleading model of the growth of knowledge– the model of an accumulating heap of observation statements.“
Karl Popper, The logic of Scientific Discovery, Preface, 1959.
If observations is the best we can do, even if it is not really good for Karl Popper to study epistemology, then we should do it the best we can. In the previous post I described my view of the collaborative tagging system as a heap of observations. It makes me feel we are on the right way.
This diagram presents the abstractions involved in the collaborative tagging system, this is more described in a paper that we just submitted to the SAAW06 workshop. In this paper we also give specifications of the collaborative tagging system and of the collaborative tagging memory. Hopefully it will get accepted…
Here is a set of definitions from the oxford dictionary of the terms used in the diagram:
• Phenomenon: The object of a person’s perception; what the senses or the mind notice.
• Observation: The action or process of observing something or someone carefully or in order to gain information.
• Representation: A mental state or concept regarded as corresponding to a thing perceived.
• Transcription: A written or printed representation of something.
• Term: A word or phrase used to describe a thing or to express a concept, esp. in a particular kind of language or branch of study.
• Human: A human being, esp. a person as distinguished from an animal or (in science fiction) an alien.
• Object: A thing external to the thinking mind or subject.
• Collaborative: produced or conducted by two or more parties working together.
• Tagging: attach a label to.
• Memory: Something remembered from the past.

The phenomena are the environment of the system. Observations are the human perceptions of the phenomenon. The representations are the mental association of terms to the observations. The transcription is the process of writing the observations, what we call tag. The collaborative tagging memory stores observations.
I use Journler since some weeks now. Trb already blogged about it. It is a great tool to help you get organized, to foresee what you have to do and get things done. It supports keywords, smart folders, calendar, links to directories, documents… many many many great features, it’s a tool I tried to program myself many times (one was named iDoc, another eNotes …) but I never reached the elegancy and supremacy of Journler. I recommend it to every Mac users.
I would love if in the scope of Nepomuk we’d create some applescripts to be able to use Journler as a frontend for our system.
Méta-modèle est une désignation subjective employée par des scientifiques qui, honteux de leur meta-ignorance, ne peuvent nommer leurs théories que par la position relative à leur incompréhension.
Technorati Tags: Computer Science, Philosophy, Science, Research
The previous post is almost the top of a long way through abstraction. It is a piece of Art therefore I have no need to justify it. But it is also a theory of Philosophy, so I can let my writings be inspired from it. Another picture will give you already a wider view:

This is my office where I write the dissertation of my PhD. And because its area of Research is Computer Science, I am giving more details.
There is another theory in this thesis:
Software Science is Understanding the World through Software Systems Engineering.
This leads us to the apparition of a new Paradigm which is still to formalize.

The previous diagram is a visual representation of this paradigm.
Our validation is based on the following Case Study:
Collaborative Tagging Systems
Through the study of the creation of such a system in the European Project Nepomuk we give an example of such a process.

The previous figure is an illustration of the task force TF-Cycle of Nepomuk. The status of this task force is “completed”. Its objective was to set up the development cycle of such a project.
We are going to study the case of “Collaborative Tagging” in this cycle. Here is a Usage Scenario:
I now tag this resource with the tag Beautiful.
This scenario leads us to a functionality named “tag” which describes the Act of Tagging. Here is its formal definition:
tag(person, time, resource, tag) is true
The previous formal definition of the scenario could be phrased in an abstraction like that:
From now on the fact that this person knew about this resource from the aspect of that tag is true.
This leads us to a Philosophical Understanding:
The world is everything that is the case.
This statement is the first paragraph of Ludwig Wittgenstein’s Tractatus Logico-Philosophicus. An artistic representation of it can be found in the previous post.
The specifications of this system in Leslie Lamport’s TLA+ would be the same:
tag(person, time, resource, tag) is true
Designing this system includes the concepts of storage, users, trust, intelligence, retrieval, clock, facts. In the Architecture, these concepts are implemented as a set of services Distributed Filesystem, Conceptual Users, Security, Semantic Automatic Annotation, Semantic Search, Computers, Humans. If the project is successful, it validates the specification, the abstraction, the theory which is:
Humans know something about the world.
Cédric Mesnage 5 July 2006.
This example illustrates the scientific methodology of Software Science. As the resulting theory tells us something about the world, it validates the second theory too:
Software Science is Understanding the World through Software Systems Engineering.
Cédric Mesnage 5 July 2006.
My thesis will be the development of this research proposal, it will be presented in the Faculty of Informatics of Lugano in the discipline of Systems Research, it is advised by Mehdi Jazayeri.
Technorati Tags: Nepomuk, Paradigm, Philosophy, Collaborative Tagging, Research, Software Engineering, Software Science
After this great meeting we had in Galway, my understanding of computer science evolved on many aspects. One of these is the notion of development cycle. I started to work on a new diagram which will also evolve as I already know that some pieces of it are still fuzzy in my mind. Anyway here it is.
Specifications
You can see that the specifications in my previous posts were on the requirements side and now they are on the system side… I don’t quite know exactly why I did so, it is like an intuition. The specifications describing the system better than the code itself, I considered it should be part of it.
Architecture
The actual implementation of the system is the architecture. The act of writing code from the specifications is named design. When reverse engineering from an existing architecture one try to understand the specifications the code is based on.
Usages
When hacking, one develop a system testing it continuously.
Scenarios
The case studies lead to the creation of scenarios from real usages.
Functionalities
The functionalities are generalized from identified behaviors in the scenarios.
Abstraction
The abstractions are both a generalization from the functionalities and from the specifications.
Technorati Tags: Computer Science, Nepomuk, Research, Software Engineering
After hours of discussions we finally came to a consensus about our development process within Nepomuk. It is an evolution from the previous posts about development as there is a new element the “Nepomuk Service” which I introduced. It is basically the set of higher abstract available and required functionalities. It is at the same time an access to the system and a communication device between the requirements (top-down approach) and the system (bottom-up approach). As I see it a functionality identified in a scenario goes through the abstraction to this service and then down in the implementation.
This could certainly be generalized as a development process for big service oriented architecture design.
Nepomuk is a particular service defining abstract functionalities relevant to achieve the “social semantic desktop”.
Technorati Tags: Computer Science, Nepomuk, Research, Software Engineering
I am in Nepomuk meeting, my presentation went well especially with our nice diagram. But now have huuuuuuge terminology issues leading to many misunderstanding from everyone and wasting a lot of time and money.
Definition is the first thing to be done in any situation.
If you have a presentation to do, start it with a slide named “definitions” and not introduction. Even the introduction relies on terms that have to be defined.
In software engineering many years, many projects in the world spend a lot of many on working without defining. Maybe software engineering itself is just a definition process. As wittgenstein put it philosophy is matter of definition.
So define, define, define, define, define!!!!!!
Oh and never ever use examples to define something if you could do it differently, it just shows that you don’t know exactly what you speak about.
Technorati Tags: Computer Science, Nepomuk, philosophy
Okay, here is the last version of today’s diagram, after the comments of Knud about the verticality of the labels. So we’ll use it next week in Galway…
It looks like there are still some missing connections, maybe the “ontology design”, but I don’t know how to name it more generally. Or maybe is it another “forward engineering” process…
Technorati Tags: Computer Science, Nepomuk, Research, Software Engineering
As I am working in the european project Nepomuk, I realize that my understanding of how software development is held is sometimes different from the one of others. So here is a picture which summarizes what I understood from what I have been thinking lately.
I am sure that this model is not complete and could be extended. Maybe the APIs could be replaced with User Interfaces… And I could add some arrows between scenarios/uses and components/uses labeled with ‘Refinement’… Anyway there is no perfect representation of a development process.
Actually I just did what I said previously, so here is the result of it, a much nicer diagram with streams and colors…
Technorati Tags: Computer Science, Nepomuk, Research, Software Engineering
Today the result of my understanding lead to a graphic representation of it which I give you with this post. I find it beautiful and as one should know :
“And if it is beautiful, it must be true“.
Technorati Tags: cosa, philosophy, Research