Re: SPARQL & SemWeb

On Fri, Apr 14, 2006 at 10:22:53AM +0200, Luk Vloemans wrote:
> Hey Christopher,
> 
> I was just searching the web for using SemWeb and SparQL to retrieve spatial
> information. The first hit I got was your blog, so I thought you might be
> able to hint me as to a solution?

The quick answer is that there is no simple solution to your problem.
Answering a question using the semantic web is very similar to answering
a question using the regular web: The answer may be out there, but you
may have a hard time finding it on your own, and instead have to go to
some source for a search through collections of documents.

What you would need to answer this question is a Google-like crawler and
database, against which you could perform some sort of queries -- most
likely SPARQL. I built one of these myself on top of redland -- you can
see some of my crawling and other utilities under
http://crschmidt.net/semweb/. However, I don't think that running
queries like the one you're asking about would have gotten you a useful
response in the limited dataset I collected - and it was no small feat
to collect the multi-million triple database to begin with.

> Let's presume you have a RDF dataset
> X  latitude    123.123
> X longitude   465.456
> Y latitude     234.234
> Y longitude   567.567
> I would like to query SemWeb to get : all objects within a radius of N
> kilometers of a specified lat/lon.

> How would one get such results? Is it even possible? I would appreciate your
> insight!

With a large enough search database, you could do a couple things:

 1. Find all documents which have a lat/long, and populate a seperate,
    GIS or similar database with the data from these documents. This
    would allow you to perform a geographic query of the type you're
    looking for.
 2. Accept an approximation, and search for a bounding box, rather than
    a point. This would still be non-trivial, but it is possible in
    SPARQL: something along the lines of:

      SELECT ?place 
       WHERE { 
         ?place geo:lat ?lat; geo:long ?long.
         xlat < ?lat < ylat.
         xlong < ?long < ylong.
       }

     Note that this is psuedo-code, and will also not exactly match
     "within 100 km", because a circle is not a rectangle, but you
     should be able to work out the general mechanism for querying for
     such a place from this example.

However, both of these solutions are based on the existence of a
queryable crawler that will tell you either what documents contain a
certain term (geo:Point) or allows you to execute queries against it,
and I'm not sure if either exists.

The best place to follow up on this question is with the Semantic Web
Interest Group. Their homepage is at http://www.w3.org/2001/sw/interest/
, and their mailing list is at semantic-web@w3.org (Archives at
http://lists.w3.org/Archives/Public/semantic-web/). This is the
collection of people who are working to build the semantic web -- I gave
up on it almost a year ago now, and I'm not really that interested in
going back.

I've CCed that list here, but I'm not sure if it will go through, as I'm
not a member of the list. If not, you can feel free to forward my
response to you to the list as a conversation starter: it is certainly
possible that a crawler as I describe does exist, and I'm simply not
aware of it, but the semantic-web w3c folk would be. 

-- 
Christopher Schmidt
Web Developer

Received on Sunday, 16 April 2006 05:03:15 UTC