W3C home > Mailing lists > Public > semantic-web@w3.org > June 2006

Re: xlst and rdf/owl

From: Simon Price <simon.price@bristol.ac.uk>
Date: Fri, 02 Jun 2006 11:16:04 +0100
Message-ID: <44800FE4.40003@bristol.ac.uk>
To: tim.glover@bt.com
CC: danbri@danbri.org, cff@di.uevora.pt, chris.dollin@hp.com, semantic-web@w3.org

Tim's right. SWI's semweb module will let you do something like 
load_rdf('myfoaf.rdf') which parses the RDF in as triples accesible via 
the rdf/3 and rdf/4 predicates. You can load ontologies in the same way 
because they're just rdf files.

As for reasoners, you can look in the semweb module to see what kind of 
reasoning is implemented but its pretty easy to roll your own in prolog 
of course.

Instead for my foaf work, which has fairly modest requirements for 
inference, I wrote a generator that pre-calculates all the logically 
entailed triples, asserting the inherited/inferred properties and 
subproperties as explicit predicates. This effectively maps from rdf 
triples to prolog terms for each rdf class. The upside of my approach is 
a human-readable prolog representation of your data. The downside is 
that your code gets locked into static representations of 
objects/classes which is a bit un-semantic web. In hindsight I'd 
probably stick with the raw rdf/3 predicate if starting the project again.

But in summary SWI has fantastic support for RDF and XML/SGML in general 
although it is an in-memory model so is restricted to around 40M triples 
or something of that order. You can also connect, in theory at least 
(I've not tried it myself yet), to Jena or Redland too for more capacity.



tim.glover@bt.com wrote:
> I believe SWI prolog has RDF and OWL parsers built in, together with RDF
> and OWL reasoners. 
> Tim. 
> -----Original Message-----
> From: semantic-web-request@w3.org [mailto:semantic-web-request@w3.org]
> On Behalf Of Dan Brickley
> Sent: 01 June 2006 15:41
> To: Cl?udio Fernandes
> Cc: Chris Dollin; semantic-web@w3.org
> Subject: Re: xlst and rdf/owl
> * Cl?udio Fernandes <cff@di.uevora.pt> [2006-06-01 15:31+0100]
>>On Thu, 2006-06-01 at 15:05 +0100, Chris Dollin wrote:
>>>On Thursday 01 June 2006 14:36, you wrote:
>>>>I've been working with xslt lately, great tool. But the question
> is: can
>>>>I use it to parse rdf/owl? I tried to, but all I get is parsing
> errors
>>>>from '<rdf:' or '<owl:' tags. 
>>>You /can/ use XSLT to parse RDF/OWL. But if you want to process the
>>>RDF/OWL /as/ RDF or OWL, is XSLT the right tool for the job?
>>Actually I want to process rdf/owl to generate Prolog predicates,
> which
>>means I don't want to generate another tree, and I need some
> formatting
>>Right now I'm doing it with the expat lib. I parse the document and
>>forward a big term to Prolog, which will generate the desired .pl.
>>However, it seems that if I could do this with xslt, my life would be
>>easier :)
> OK, look around for one of the XSLT parsers that generates 'n-triples' 
> or N3 format. These are prolog-like. It can be done...
> Dan


Simon Price
Received on Friday, 2 June 2006 10:16:28 UTC

This archive was generated by hypermail 2.4.0 : Tuesday, 5 July 2022 08:44:57 UTC