- From: Dave Beckett <dave.beckett@bristol.ac.uk>
- Date: Tue, 25 Jan 2005 10:36:34 +0000
- To: RDF Data Access Working Group <public-rdf-dawg@w3.org>
I think these would be useful operators for value testing of SPARQL RDF Terms, to go along with lang() and dtype()* operating on literal terms. I propose adding to 10.2 10.2 Value Testing / RDF Types http://www.w3.org/2001/sw/DataAccess/rq23/#sparqlTests possibly a new section or could be in one of the existing ones: 10.2.3 SPARQL Operations on RDF Terms The following table provides operations to test if an expression is one of the three RDF Terms[#href to definition in section 2.2]. Operator: isblank(arg) Meaning: Tests if the expression is an RDF blank node ( http://www.w3.org/TR/rdf-concepts/#dfn-blank-node ) Return: xsd:boolean isblank(_:a) => true isblank(<uri>) => false isblank("literal") => false Operator: isuri(arg) Meaning: Tests if the expression is an RDF URI Reference ( http://www.w3.org/TR/rdf-concepts/#dfn-URI-reference ) Return: xsd:boolean isuri(<uri>) => true isuri(_:blank) => false isuri("literal") => false [ could be isresource() but then they are all RDF resources Operator: isliteral(arg) Meaning: Tests if the expression is an RDF Literal ( http://www.w3.org/TR/rdf-concepts/#dfn-literal ) Return: xsd:boolean isliteral(<uri>) => true isliteral(_:blank) => false isliteral("literal") => true Examples of use Find literals in French SELECT ?z WHERE (?x ?y ?z) AND isLiteral(?z) and lang(?z) = "fr" Find blank subject nodes SELECT ?x WHERE (?x ?y ?z) AND isBlank(?x) Find triples with URIs SELECT ?x WHERE (?x ?y ?z) AND isURI(?z) Dave * Yuck - datatype() is a full word for 3 chars more and we have rdf:datatype lang() is OK since xml:lang has lots of use
Received on Tuesday, 25 January 2005 10:39:23 UTC