Question on modeling process topology with RDF/OWL

Dear RDF/OWL people.

I've taken on representing complex multi-process, multi-hosted
enterprise applications using RDF/OWL.  I came across one type of
relationship for which I don't seem to find the appropriate model.

The scenario:

A number of processes run on a number of hosts.  One host 'hosts' one
or more processes (in the example below, P1 and P2 run on the same
host).  A process can be...

a) a client of one or more other processes
b) a server to one or more other processes
c) a and b above

Each process has a configuration file that gets automatically
generated from the OWL individuals in the RDF file.  The user designs
everything in Protege, and another process digests the RDF file to
produce all the configuration files.  Of course, all of this is
currently vaporware...


               +--------------+
               |              |
    .101:1265  |    P1        |--------+
    ---------->|              |        |
               |              |        |            +--------------+
               |              |        | .104:8080  |              |
               |192.168.1.101 |        +----------->|     P4       |--->
               +--------------+                     |              |
                                       +----------->|              |
               +--------------+        | .104.8083  |              |
               |              |        |            |192.168.1.104 |
               |    P2        |--------+            +--------------+
     .102:1266 |              |
    ---------->|              |          .105:8080  +--------------+
               |              |-------------------->|     P5       |
               |192.168.1.101 |                     |              |--->
               +------^-------+                     |              |
                      |.101:4400         .105:8088  |              |
               +------+-------+        +----------->|              |
               |              |        |            |192.168.1.104 |
               |    P3        |        |            +--------------+
               |              |--------+
               |              |
               |              |
               |192.168.1.103 |
               +--------------+

So, the first thing that comes to mind is that in the process class
there is one of more "isClientOf" and "isServerTo" properties.

Problem 1:

These properties are actually pairs of IP address and a port number
(address:port), or a host (where the server runs) and a port number 
(see Problem 2 below).

I can't figure out how to model this nicely. I can make the
connections between the process individuals of a class, say the
"socket" class, so that the isClientOf property is of type socket.
But I'd hate to do that because it would force the user to create
these socket individuals ahead of time, and because it is
counter-intuitive to a system engineer, or an IT admin.  So, how can
one model a relationship that consists of a pair of independent
values?



Problem 2:

I don't like specifying the IP address (or the host name) of the
server process as a property of the client class.  If I need to
rebalance
CPU load, etc. and need to move process P5 to another host I'd like to
change this information (i.e. the IP address) *in only one place*. This
way I don't need to change P2 and P3 with the new IP address.  In
other words, I'd like isClientOf to be of the type process. Since the
process class has the "isHostedAt" property (the inverse of
"isHostToProcess" property in the "host" class) of type "host", I should
be able to obtain the IP address that needs to go into P2's config
file this way:

<P2>   <isClientOf>    <P4>
<P4>   <isHostedAt>    <H1>
<H1>   <ipAddress>     <"192.168.1.104">

... so the configuration file of P2 automatically gets the new IP
address of its server P5 without its corresponding OWL individual
being changed.  The only thing changed is the isHostedAt property
of P4.

Is this possible?  Is this what reasoners do?

Sorry if all this sounds too basic to ask in this forum, and many
Thanks to those who have taken the time to read this far.

Thanks,

Leo

Received on Tuesday, 3 January 2006 01:44:00 UTC