Re: use of SPARQL (WAS: Functions in N3)

On Fri, 2017-10-13 at 18:41 +0200, Andreas Harth wrote:
> Hi Paul,
> 
> On 10/13/17 18:27, Paul Tyson wrote:
> > RIF data types and built-ins [1] has all the functions you should
> > need in everyday use. No need to make up new IRIs.
> 
> how would I write
> 
> BIND (datatype(?x) AS ?dt)
> 
> or
> 
> FILTER (isLiteral(?x))
> 
> with RIF built-ins?

Well, I wouldn't, directly.

SPARQL is not a semantic expression notation; it is a graph pattern
matching language, and quite a serviceable one at that.

SPIN is a sideways extension that provides some more capabilities, but
doesn't elevate it to a semantic level.

What is needed is a purely declarative notation for expressing desired
constraints amongst entities. Viable candidates are RIF, Common Logic,
and RuleML.

I should say at this point that my career path has taken me away from
semantic technologies in daily work, so I have not had the opportunity
to put into practice all of what I preach. But I had reached the point
where for serious enterprise-level use of SPARQL, I was generating it
from RIF rules. I was initially attracted to Common Logic as an
ur-language but found it was too generic for practical use. RIF hits the
sweet spot for covering all the common logical forms needed for business
rules, as well as being thoroughly integrated with the semantic web
stack and XML.

Hand-written SPARQL works well for what it does in the semantic
technology stack, but it is ultimately a single-purpose notation,
unsuited for analysis, exposition, or composition. RIF, by contrast, can
be integrated with other data sources, processed for different outputs
(including SPARQL), and composed from separate pieces. (The same could
be said for other rule languages, but RIF has the advantage of better
integration with W3C SW and XML standards.)

Regards,
--Paul

Received on Saturday, 14 October 2017 02:17:01 UTC