Dual variable class statements

Hello All,

I have a set of Individuals of RDF:type #Service. And I have a set of
Invididuals of RDF:type #Location. Each #Service individual is links
to one #Location individual via a property called 'hasLocation'. Its
inverse is 'LocationOf'.

Using ARQ is there a way to select a set of services in one column and
the service's Location in another column - when you only know the URIs
#Service and #Location or some other complex class which could have
been defined earlier? In order words can we generate the query using
class URIs and predefined RDF/OWL URIs, without knowing the property
URIs (hasLocation and LocationOf)?

What I really want is something like this:

?x RDF:type #Service
?y RDF:type #Location
?y RDF:type locationFor.Service ^ locationFor.{?x}

(where { } is a 'hasValue' statement, but instead of containing the
URI of a literal it contains an ARQ variable)

Put another way, I want access to both variables in the statement,
rather than just the role filler.

EG:
?x RDF:type #Service
?x hasLocation.(Location ^ hasCoordinates.Coordinates) ?y
?y RDF:type #Coordinates

The reason Im asking, is because i want to build up more complex
single statements for defining relations/predicates between two
Individuals/facts.

If this were FOL, I would have a statement like:
forall(x, y, z) Service (x) ^ hasLocation(x, y) ^ Location(y) ^
hasCoordinates(y, z) ^ Coordinates(z)

Then I would want to extract each x and z variable pair and do
something with them.

I suppose this kind of thing is not possible in DL? Is it perhaps
rules (eg SWRL) that I should be looking at & then using this in
conjunction with ARQ?

Thanks for any comments!


-- 
Luke Steller
PhD Candidate
Faculty of Information Technology
Monash University
A U S T R A L I A
=============================

Received on Monday, 11 September 2006 13:17:51 UTC