Re: Enhancing object-oriented programming with OWL

On Tuesday 11. September 2012 15.07.32 Timothy Armstrong wrote:
> Well I'm glad people are talking to me, but I'm just surprised I'm 
> really not getting people to say much positive.

I'll say something positive, then! :-) I think you're on to something very 
interesting and valuable, and something I've been thinking about for some 
time too.

I have also developed projects using SPARQL and XSLT like others, but 
unlike others, I don't think it is at all the way to go. While writing 
recursive, cross-referential XSLT did give me some kind of perverse 
intellectual satisfaction, it takes way too much time compared to how web 
applications are developed these days. Instead, I started working on RDFa-
based templating, but there was little interest. Nowadays, Callimachus has 
done that direction really well. However, I think that too is going to 
prove a dead end. The MVC pattern doesn't make sense on the server anymore, 
now that people do most of their view stuff on the client anyway. Still, 
there is a lot of stuff that needs to happen on the server side to provide 
the client with exactly the right data and enable exactly the right 
interactions.

In light of this, I think it is important to give developers good server-
side tools. However, I'm not sure that Java is the right tool for the job, 
mainly for two reasons. I have admittedly not have had the time to read 
your paper in full, so excuse me if you have dealt with it already. The 
first is that the translation needs to happen not only at compile time, but 
also (optionally) at runtime. If you can't do it at runtime, you're not 
exploiting the dynamic nature of the Semantic Web, and so, you could 
generate classes (or instantiate objects) based on any old competing 
technology.

Secondly, OWL has multiple inheritance, and that is, in OOP terms, a very 
messy concept, and Interfaces far from capture what's interesting. I think 
a lot more research is needed in that direction. To do this properly, I 
think you need traits, with explicit conflict resolution, you need to be 
able to compose behaviour in a much more rigorous manner. See the traits 
research here:
http://scg.unibe.ch/research/traits

The Perl community has done a little bit of work in this direction, most 
recently, Konstantin Baierer with MooseX::Semantic:
https://metacpan.org/module/MooseX::Semantic

At a recent hackathon, we had a brief discussion about how this should be 
used and the business models around it. That was the harder part of the 
conversation, actually. 

So, while I think that the (too) static nature of Java and its lack of 
composable behaviour, I still think it is interesting enough to encourage 
you to write the code and see where it takes you. 

Best,

Kjetil

Received on Tuesday, 11 September 2012 19:49:58 UTC