Science

Thanks very much to everyone who commented on the KDE Scientists post.

There’s far too much for a Dot article, but I’m trying to sift some general trends and a few quotes out of the mass of information and am writing the article at the moment.

The level of interest has taken both Luca and me by surprise (in a good way) and the information you gave us is very useful in helping us to plan the next steps.

Initially, I’ll be talking about this at Akademy and it also feeds in to Luca’s BoF. However, we are also setting up another quick session to try and get interested people together and share a few ideas. If you can, please come along to the KDE Science BoF on Wednesday at 1030.

If you can’t make it, don’t worry, we’ll be sharing our initial thoughts and there will be plenty of chance to give feedback and get involved as we try and develop this. All the comments on my last post will be considered and please feel free to add any further thoughts below or contact me via the About page.

3 Responses to “Science”

  • Todd says:

    Sorry, I was out of town and couldn’t respond to the last post.

    1. Who are you and what field to you work in?

    I’m Todd and I am a PhD student in biomedical engineering.

    2. What KDE software do you use in general?

    I use KDE software as much as possible. KDE SC, dolphin, gwenview, digikam, amarok, tellico, and so on.

    3. What KDE software do you use specifically for science?

    Kalgebra/kmplot when I can, but they are not useful to me much of the time (more on that later). I have tried to use cantor but it doesn’t do all of what I need it to do yet (more on that later also). I also use Eric (Qt not KDE) for writing python programs.

    4/5. Were you aware of all the applications I listed above?

    Yes

    6. What is missing among KDE software for you?

    A good dedicated document/citation manager that integrates with KDE and koffice. Kbibtex is okay, but does not have document handling capabilities (like linking PDFs with citations), does not integrate with KDE technologies, does not integrate with koffice, and does not have KDE 4 version. I think nepomuk (and maybe akonadi) provides a great opportunity for this, since documents could be tagged with reference-specific tags globally so you can search for references right within KDE (like in Dolphin’s strigi search). I assume that a parser could be added to nepomuk that, when indexing PDF files or web pages on your hard drive, automatically extracts reference information from the document and stores it as appropriate nepomuk tags. The open-source tellico and zotero applications already have the ability to retrieve reference information from reference services and libraries, and zotero has a parser for PDF files to extract reference information from them. Konqueror is highly extendable, so putting something in it like zotero for detecting when you are on a web page that has scientific publications and allowing you to download the PDF and tag it with citation info from the page would be doable. Akonadi might provide a good tool for handling the references, since references are very similar to contacts in many ways. The references could then be (optionally) tied to files. A kio slave would allow for easy browsing of these files. Then what would be needed is an application to tie it all together. Apple has such an application that I hear is good, called Papers, but KDE technologies would make this easier, since kio/dolphinpart provides a good way to browse the references and files, akonadi/nepomuk provides a way to manage the data, and the okular part provides a good way to view and annotate files. Then there would need to be something in koffice that hooks into this and adds the citations.

    As others have said, a matlab-like program would be wonderful. Cantor already has the beginnings of this, but it lacks things like variable management and viewing, an IDE for writing functions, a function browser for finding the function you want, and so on. Numpy+scipy+matplotlib (which sage uses) already has much of the underlying architecture to make an open-source matlab clone, but lacks a graphical interface that can compete with Matlab’s (it is basically all command-line, idle is far too basic). Eric has much of what you might need, but it is designed as an IDE so it lacks a good integrated interactive shell or function browser like matlab has. It also doesn’t use KDE technologies, for instance kate which I would say is a much better text editor. Kalgebra has a good function browser (called the “dictionary”), but lacks good vector (list of data) handling.

    The final tool that KDE needs is a good circuit simulator, like step is for mechanics. There are lots of good Linux circuit simulators, but none that I am aware of for KDE.

    7. Would you be interested in a dedicated mailing list/website area for KDE software for scientists?

    Yes

    8. What else would you like to tell me?

    Please add support for logarithmic axes to kmplot. This is absolutely essential for anyone doing technical computing, most fields of science, or any engineering. For me I need to plot on logarithmic axes more often than on linear ones. The lack of support for this makes these applications useless to me much of the time.

    It would also be very useful if, in addition to plotting logarithms and derivatives of functions, kmplot could also plot fourier transforms and inverse fourier transforms. These are key tools for engineering and many areas of science, so having support for them would be extremely useful.

    Also, step really needs a built-in dashpot object. You can make one yourself using various objects and fluids, but it isn’t easy. Dashpots, like springs, are considered one of the basic elements of machines in mechanical engineering, similar to how resistors, capacitors, and inductors are the basic elements of electrical circuits. So anyone doing basic mechanical engineering simulations and demonstrations, for instance in mechanical engineering classes, will absolutely require a dashpot element. So having one readily available in step I think will drastically increase its usefulness in more advanced (i.e. college-level) physics and engineering classes.

    9. If you developed scientific software/algorithms, did you ever consider KDE users/platform as a target? If not, why?

    No, most of my stuff is command-line python scripts. I could make a GUI, but that would be much harder without much benefit. If there was a good python IDE for KDE that includes an easy GUI maker I might consider it, but there isn’t currently (kdevelop’s python support is pretty limited right now). Kdevelop also lacks, as far as I can find, the ability to import existing python projects, which is strange.

    10. Did KDE software help you with your research in general? For example, do Kontact or Plasma widgets help keep things orrganised?

    Yes, Dolphin in particular is great, but plasma is really useful and has some good quick widgets like qalculate and unit converters.

    • Stu says:

      Re KBibTeX – actually you can link the citations to PDFs but it’s not immediately obvious, is under something like ‘external’ where you can put in the document DOI, URL or a link to a local file.

      There seems to be a lot of interest in the kind of reference manager that you are proposing, with many other people making similar suggestions of better integration and more use of the new Platform 4 technologies

  • Todd says:

    Oh, there is one additional application that is missing: a good non-linear differential equation handler. Using complex differential equations is very common in more advanced scientific applications, but there are very few good tools for this at all.

    Another very useful tool would be a nested categorization tool for displaying nested categories, as well as taking various attributes of different arbitrary objects, calculating how closely related each one is, and grouping them. Kalzium already shows relationships between elements, someone else said they wanted to do something similar with subatomic particles. But this can also be used for star and planet types in astronomy, species in biology, proteins in molecular biology, drugs in pharmacology, rocks in geology, and more abstract data like plots and time series data. So having a tool to both lay out categories in an arbitrary manner for display as well as automatically categorizing data based on arbitrary rules the use establishes would be an extremely useful tool for just about any area of science.

    Another important task that all scientists do is track the individual subjects of their study. It might be individual humans, animals, stars, volcanoes, and so on, but have a general tool that allows people to keep track of individual things that they are studying, tag their data with what subject it applied to and when, keep track of paperwork, schedule tasks that have to be carried out, encrypt sensitive data, and so. It would have to be flexible enough to handle arbitrary data fields and schedules and connect to files on the hard drive, but akonadi should provide the tools to carry this out. Pretty much any scientist could use a tool like this.

    A third general task is doing simulations. For instance the mathematics underyling mechanical systems like in step and circuits in electrical engineering are actually very similar, and can be applied to many other things as well (for instance predator/prey interactions). Further, circuits and mechanical systems are used as abstractions for things that are not really electrical circuits or simple machines, such as simulating neuron ion channels as electrical circuits or lung tissue as a mechanical system. Making an underlying library and KDE tool that can be used for doing general simulations, and then building tools like step or a circuit simulator on top of such a library, would be really helpful. It would provide the ability to link differential equations, and to build re-usable objects that can be given their own symbol and used elsewhere, would be extremely useful to a huge variety of subjects. For instance a neuron ion channel is usually represented as a battery and a variable resistor in series. A neuron is often represented as a group of these ion channels and a capacitor in series. So someone could use a circuit simulator to build a simple ion channel object, whose resistance and battery voltage can be changed, and these can be grouped to form a neuron object, whose ion channels can each by changed, and then those can be grouped to form a collection of neurons. How gluon makes a graphical object-oriented programming system might be a good model for how a general simulation system could be made. It wouldn’t have to be as complex as, say, finite element modelling, but having a general simulation tool which has mechanical and circuit simulator built on top of it as examples but which people could use for their own simulations would be extremely useful. GHNS could be used for exchanging objects, like simulations of popular integrated circuits or mechanical devices.

    I do have something to add generally: although I really appreciate the effort to reach out to KDE scientists, I am not sure this is necessarily the best approach. I think it might be more productive to ask what sort of tasks scientists currently do, and figure out how to make KDE better able to help in those tasks. There are, of course, many very subject-specific tasks, but there are also many general ones. Things like manipulating, organizing, and plotting data, doing statistics, handling citations, writing papers, doing simulations. Then there are basic tools used by wide ranges of scientists but not all. Mechanical system and circuit simulators aren’t used just by mechanical and eletrical engineers, for instance neuroscientists represent ion channels in neurons as electrical circuits, and many tissues are treated as simple mechanical networks. Nested categorization tools are used by numerous fields as I already mentioned.

    So I know it is hard for scientists who are trained to specialize in their own field and tend to think about what they do in reference to that field, but I think the key to success in science for KDE is to figure out the general tasks carried out by a wide variety of scientists and develop tools (or enhance existing tools) to be able to do those tasks. Basically, to take what individual scientists do, something they may see as very specific to their field, and to figure out the more abstract underlying task that is really shared by most scientists, then make an application that can do that in a flexible manner so scientists can tune it to their specific field. Not a periodic table or phylogenetic tree tool, but a nested categorization tool. Not a human subject or star organizer and tracker, but a general research object manager. Not a circuit or mechanical simulator but a general simulation tool. I am sure there are many other such generalizations that can be made, tools that can be made to at least help in a wide variety of what may seem at first glance like very specialized tasks.