- From: Leo Riener <riener@portal.com>
- Date: Mon, 2 Jan 2006 17:43:46 -0800
- To: <semantic-web@w3.org>
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