- From: Luke Steller <Luke.Steller@infotech.monash.edu.au>
- Date: Mon, 11 Sep 2006 23:17:41 +1000
- To: public-owl-dev@w3.org
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