Semantic "live" view over a set of services that expose application data and operations

Hi all,

Suppose the following scenario:

I have a set of applications that publish their functionality as a set
of services.

ApplicationA manages customers and exposes the following services ( a
Java-ish signature is  used but we could be talking about web service
operations or rpcxml services. doesn't matter )

appA.createCustomer( String id, String name );
appA.updateCustomer( String id, String newName );
appA.deleteCustomer( String id );
appA.getCustomers( String idFilter, String nameFilter ); // both
nullable or used to filter the returned collection

now, I have a second app that manages products in a similar way

appB.createProduct( String id, String name );
... idem...

and a third app that manages the products that are owned by a certain customer:

appC.getCustomerProducts( String customerId );
appC.relateProductToCustomer( String customerId, String productId );
appC.unrelateProductFromCustomer( String customerId, String productId );

In the RDF world, we can all see that there are two classes of
resources, each with two datatype properties ( id and name, where the
former is also inverse functional ) and that the Customer class has
one resource property that can hold several products.

It would be quite straightforward define an ontology and then manually
create a batch procedure ( or even on-demand ) to publish all the data
contained by this 3 applications as one RDF model.

So far so good.
But what happens if we wanted to allow an agent to modify the data by
updating the RDF graph directly instead of using the services...?
How could we keep a mapping between the statements and the services
that should be called upong removal, edition, addition to keep both
worlds in sync?

perhaps some sort of additional information attached to the
ontology... one which maps owl classes and properties to the services
needed to persist/retrieve their instances... ( ? )

now... the simplest case would be the one where the whole implicit
model can be explicitly published as RDF, but as applications grow
bigger and bigger... keeping an rdf representation of a zillion record
model would require some other strategy. And so would this mapping

has anyone thought about this? is there some work on this field?

                      agent
                         |
                         v
                  C . R . U . D.
soa    <-->      rdf/owl


Thanks,
Aldo


-- 
::::: Aldo Bucchi :::::
mobile (56) 8 429 8300

Received on Wednesday, 13 September 2006 02:20:05 UTC