my understanding has moved

June 21, 2007

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!


RDFa On Rails 0.0.7

June 3, 2007

Version 0.0.7 of RDFa On Rails is now out. It contains many significant improvements. First of all the code has been refactored into modules to get things clearer. Then we have support for the full vocabularies of rdfs, dc, sioc, foaf and scot. What does it mean? For each class defined in rdfs for instance you get a method such as rdfa_rdfs_resource which takes as input a uri and a block. For each property define in the previously mentioned vocabularies, you get methods such as rdfa_rdfs_label which takes a value(might be a uri), an optional subject uri and an optional block. And another goodie, for each property you also get a link_to helper such as rdfa_link_to_dc_creator. So you can implement:

<% rdfa_rdfs_resource do %>
<%= rdfa_dc_title "a resource in RDFa on rails" %>
<% rdfa_dc_date "2007-06-03" do %> June the third in the holy 2007 <%end%>
<%= rdfa_link_to_dc_creator "Cédric Mesnage", "http://www.inf.unisi.ch/phd/mesnage/" %>
<%end%>

Notice that in the previous example we didn’t give a uri to the resource, in this case a blank node will be generated. To summarize, we have:

  1. For each class of the supported vocabularies a method rdfa_{namespace}_{lowercase class name}
  2. For each property two methods :
    1. rdfa_{namespace}_{lowercase property name}
    2. rdfa_link_to_{namespace}_{lowercase property name}

So basically you already have most of the things you need to represent your data in RDFa. But what if you want to use a specific vocabulary that we don’t support? well just do the same as we do:

  1. Register the namespace of your vocabulary using
    Rdfa.register_namespace(name, namespace)
  2. Register the classes you wish to use using
    Rdfa.register_rdfa_classes(namespace short name, list of classes)
  3. Register the properties you wish to use using
    Rdfa.register_rdfa_properties(namespaceshort name , list of properties)

Simple enough? That’s what we use to support the vocabularies, as in this example for some of the foaf vocabulary:

Rdfa.register_rdfa_namespace :foaf , 'http://xmlns.com/foaf/0.1/'
Rdfa.register_rdfa_classes :foaf, ['Person','Project']
Rdfa.register_rdfa_properties :foaf, ["mbox","name","knows"]

Next things to be done, complete and refine the documentation, improve the rdfa-typo theme, add unit testing.


RDFa On Rails uses now SCOT for tag events

May 29, 2007

SCOT (Social Semantic Cloud of Tags) was just announced on the tagsonomy mailing list, I decided to use it to represent tags in RDFa on Rails. So using :

<% rdfa_tag tag_uri do %>
<%= link_to term, tag_uri%>
<%end%>

will now produce a “scot:Tag” class, we are also provided with a new property, “hasTag” which we use in the <%= rdfa_link_to_tag term, tag_uri %> partial…

RDFa on Rails goes version 0.0.4


RDFa On Rails, the Semantic Web made simple

May 29, 2007

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.


dpolls doesn’t work on WordPress

May 16, 2007

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 :

Create polls and vote for free. dPolls.com

Too bad it doesn’t work, the idea is good…


Fresh install on a macbook pro

May 14, 2007

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…


Mnemosyne

May 10, 2007

mnemosyne_logo_sketch6.gif

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:

  1. Take the web2.0 ideas of simplicity, interoperability and social amplitude
  2. Add some semantic web/computing power
  3. Choose the best possible case study, Cultural Heritage
  4. Connect the right people together
  5. Shake it
  6. Shake it again

Here it is you’ve got the idea. So some resources now:

  1. the post here about the talk I gave last year in Peter Samis’ class which kind of originated all this.
  2. The steve.museum project, which I blogged about too. Steve experiments with social tagging in the context of museums.
  3. Then the people, our university of lugano, its faculty of informatics, the tec-lab, the usability lab of KTH, the semantic web researchers of DFKI, the PRC group.
  4. The museums involved, Centre Georges Pompidou, Istituto Beni Culturali per la Regione Emilia Romagna, the thessaloniki Museum of photography.

The web, science and all that…

May 10, 2007

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:

tim-cedric-cycles.png

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.


web 3.0 bullshit

April 21, 2007

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.


A semantic web blog post prototype…

December 7, 2006

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(". ")

Engineering the Semantic Web with SWORD

December 5, 2006

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'

Viewing myself with the basic show action of SWORD:
myself on sword


An architecture for the social semantic desktop, first draft

December 1, 2006

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:

nepomukarchitectureoverview.png


The development cycle is back on its wheels

December 1, 2006

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:

development cycle


Presenting in SAAW, ISWC Athens GA

November 27, 2006

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 :

specifyingthecollaborativetaggingsystem6×6.pdf


Proceedings of SAAW 06

November 2, 2006

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.


Display keyboards shortcuts in MacOSX

October 29, 2006

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

October 13, 2006

“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…


TLC model checker

October 13, 2006

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.


Collaborative Tagging Museums

October 6, 2006

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:

taggingmuseums2pages.pdf


Smart Web Id

October 4, 2006

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:

3.gif

And their great logo :

logo_beta.gif


Final version – Specifying the Collaborative Tagging System

September 22, 2006

Okay, we just submitted the final version of our paper and here it is.
mesnagejazayeri06bfinal.pdf

Have a good reading!


Specifying the collaborative tagging system – Paper

September 21, 2006

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.


Talk in the international summer school of software engineering, Salerno

September 12, 2006

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).


What is Science?

August 30, 2006

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.


There is No Pure Inductive Methodology.

August 24, 2006

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.


The Software Development Cycle is a Scientific Cycle

August 22, 2006

The following diagram shows that the software development cycle is equivalent in the form to the science cycle.

scientificsoftwaredevelopmentcycles.png


Observations are the best we can do.

August 21, 2006

The logic of scientific discovery

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.


The Collaborative Tagging System Abstractions

August 11, 2006

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.

Collaborative Tagging System Abstractions
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.


Journler Organizational Tool

July 14, 2006

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.


il n’y a pas de méta-modèles.

July 6, 2006

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: , , ,


The theory of Knowledge.

July 5, 2006

Pict0038

Technorati Tags: , , , , , ,


Going down

July 5, 2006

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:

Pict0031
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.

Softwaresciencesystem
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.

Nepomukdevelopmentcycle
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: , , , , , ,


Development Cycle

July 1, 2006

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.

Developmentcycle-1

Technorati Tags: , , ,


Abstraction Process

June 29, 2006

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”.

Abstractionprocess

Technorati Tags: , , ,


Definition

June 28, 2006

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.

Softwaredevelopment-2

Technorati Tags: , ,


nepomuk development

June 22, 2006

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…

Softwaredevelopment-1

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: , , ,


software development

June 22, 2006

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.

Softwaredevelopment

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: , , ,


my understanding

June 20, 2006

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“.

Cosa-1

Technorati Tags: , ,


Follow

Get every new post delivered to your Inbox.