Re: Building SW apps

Hi Ivor,

What you've described is something I've been hovering around for quite
a while now. In its latest incarnation there are (very rough) notes at
[1]. I've got a general-purpose project vocabulary at [2], so
projects, goals & tasks can be expressed in such a way as to be
decomposable into subtasks etc and prioritised. My ideal is to push in
to-do lists, get out the next task I need to do for the most efficient
use of time/resources.

I've got sidetracked onto a different side of things for the moment,
but the next step I needed to do on this was evaluate strategies for
using an inference engine to help. The options that stand out are an
OWL DL reasoner, a rule engine or a planner.

I'm pretty sure I'd need to step outside the DL reasoning for the
prioritization (pythonic hacks being an option). I suspect an engine
that supported rules (like cwm or Pychinko, or even something
Prologish) might be easier.

The work done by the Maryland folks looked very promising for the true
planner approach, Jim Hendler pointed me to the papers around [3]. The
material there is applied to Web service composition, but basically
they've got a SHOP2 planner that can work on OWL, so if I could map
the project vocabulary to theirs (OWL-S based) maybe their engine
could do the necessary planning.  It would probably be overkill for
the to-do list refactoring that I want, but could be fun.

I'm sure I could get a system like this up and running in a matter of
weeks...if I had a system like this ;-)

Cheers,
Danny.

[1] http://pragmatron.org/docs/
[2] http://purl.org/stuff/project/
[3] http://www.mindswap.org/papers/

-- 

http://dannyayers.com


On 5/22/05, Ivor Tillier <ivor@ivor.net> wrote:
> 
> Dear all,
> 
> This is very much beginner territory, but I'm working totally on my own so
> any help would be very much appreciated.  The question is: How would I
> implement this application?.
> 
> Say I have a programme that will manage the tasks and resources involved in
> building a house.  I need to be able to sequence my tasks in the correct
> order and buy the materials.  So, each activity will be dependent on
> conditions being fulfilled e.g. don't fill foundations with concrete until:
> - holes dug
> - cement and aggregate bought
> - cement mixer on site
> - it is not raining.
> 
> Now, I can call on an ontology to reference this project, which contains a
> set of conditions and restrictions between tasks and resources in the
> project using OWL (e.g. weather condition for pouring concrete must be dry).
> 
> I want my builder to have an application which provides him with a list of
> instructions which describe tasks, for the above example these would be:
> 
> - dig the holes
> - buy cement and aggregate
> - get cement mixer on site
> - check that it isn't raining.
> 
> (I would also like my application to say, 'everything is on site and it's
> going to rain tomorrow so do it today'.)
> 
> Now, this is where I'm getting vague(r?).  I need a programming environment
> which has an API that can handle the tags in OWL (or RDF) e.g. Jena.  So I
> write the programme in, say, Java and call on this API so that I can enforce
> the conditions laid down in the OWL file?  Then the builder can use the
> programme to write a list of things to do.
> 
> So, why don't I just hard code the restrictions and conditions into the
> application?  Is it because the OWL file acts as a kind of configuration
> file for the app? (separating the reasoning from the data).  But then isn't
> that just about loose coupling which should be a programming aim anyway?
> 
> Ivor
> 
> 
> 
> 
>

Received on Sunday, 22 May 2005 20:14:56 UTC