- From: Dave Reynolds <der@hplb.hpl.hp.com>
- Date: Fri, 14 Nov 2008 09:18:09 +0000
- To: Axel Polleres <axel.polleres@deri.org>
- CC: Jos de Bruijn <debruijn@inf.unibz.it>, "Public-Rif-Wg (E-mail)" <public-rif-wg@w3.org>
Axel Polleres wrote: > Jos de Bruijn wrote: >> Then, I find it odd to use an abstract object as data type IRI. I would >> suggest to use xsd:anyURI or xsd:string. >> There are no actual objects in the interpretation that represent the >> data type, so you cannot return the data type itself. Are there not? In RDF I can and do make statements such as: xsd:decimal rdf:type rdfs:Datatype. xsd:integer rdf:type rdfs:Datatype. eg:number rdf:type rdfs:Datatype. xsd:integer rdfs:subClassOf xsd:decimal. xsd:decimal rdfs:subClassOf eg:number. ... and use RDF rules to process such statements (e.g. to implement the RDFS D-entailments). I would expect to be to express such rules within RIF and that such rules would be able to connect the return value of pred:hasDatatype to the frames representing the above RDF assertions. For example I could write something like: eg:isNumber(?X) :- pred:hasDatatype(?X, ?I), ?I[rdfs:subClassOf->eg:number]. If the return value of hasDatatype were xsd:anyURI I could hack my way around it but it would not be convenient or easy to explain to users. >> I think returning >> the datatype IRI is the next best thing. > > I had that, but I went back from it, since I wanted to maintain a > minimal degree of compatibility with SPARQL's datatype function (which > does return an IRI, and not an xs:anyURI typed literal). We had to do > all kinds of work-arounds to get to some version where we can > "more-or-less" emulate SPARQL's filter functions in RIF. I am reluctant > to deviate even further. If the minimal requirement to emulate SPARQL's > filter functions in RIF is not met, I personally would consider RIF > failed. Seconded. Dave -- Hewlett-Packard Limited Registered Office: Cain Road, Bracknell, Berks RG12 1HN Registered No: 690597 England
Received on Friday, 14 November 2008 09:19:05 UTC