Skip to Content

suitable languages for a semantic web project

Currently I am thinking and searching for the adequate programming languages for a project
(more than one programming language will be used).

Questions:
Is there a big mistake presented in my list (other than my belief of go as a suitable language)?
Any tipps before I start?

project:
opensource project with semantic web (including rdf/owl, topicmaps), web applications and services, machine learning.
distributed system.
working version by late August 2011
mathematics/logic and speed is important, as well as fast network transfer
data will be up to 64GB

requirements:
1) open source languages only

my beliefs (which are subjective but will probably/quite certainly not change):
1) go is a good programming language at the moment/future. this is my belief and 'bet' at the moment.

Programming Languages in this precedence:

A1) go (golang.org)
reasons: my belief, should be fast in the future (now execution time ist about twice as long as a java programm)
fast growing community. hopefully improves in the next 12 months.
used as a general programming language and for web related stuff.
(I want to get away from the java virtual machine, partly because of my beliefs partly because of my privious experience)

A2) java
resons: there are many important programs and libraries available, e.g. Jena, Pellet, XML Calabash, etc.
go is given a strong precedance, but second choice is java.

A3) haskell
reason: if haskell is not too slow and a functional approach is a good choice, haskell is chosen.
I think go and haskell together is a better option than erlang or other functional programming languages.
(this may present a believe)

A4) R
reason: for problems where mathematics and statistic count, e.g. maschine learning.
there are very good packages available for this in R.
R is partly more a collection of packages than a programming language.

B1) C / C++
reason: if for some subsystem written in go/java/haskell/R is to slow, C and C++ are considered.

B2) Prolog
reason: I think in a lot of situations, haskell is a better option, but prolog is supposed to be faster in some cases
and also a good option. there is are many libraries available for prolog.

C1) Python
reason: I think go and the rest of the mentioned languages are a better option.
could be used for some natural language processing.

C2) Perl

C3) PHP
good for cms integration, e.g. drupal

  • mathematia:
    is very suitable where R has limits. but it's not open source and many researchers back R.

  • Ruby:
    I am not familiar with Ruby therefore it is not included, some of my friends swear on it.

Not considers because of the requirement to use open source languages:
C#, F#, etc.

some PAPERS and LINKS, that could be interesting:
http://prs.ism.ac.jp/web/packages/sets/sets.pdf
(if you search for the title with quotes you can find the coresponding paper)

http://finzi.psych.upenn.edu/R/library/sets/html/fuzzyinference.html

http://cran.r-project.org/web/views/MachineLearning.html

http://tmra.de/2010/documents/TMRA2010_proceedings.pdf

Three papers are possibly interesting: Topic Maps Graph Visualization & Suggested GTM (it's use to transfrom a natural question to an answer), A new approach to semantic integration, Defining Domain-Specific Facets for Topic Maps with TMQL Path Expressions. At least those papers are free to download ;-)