SPARQL - Restricting Result Resource to Certain Namespace(s) -


is there standard way of restricting results of sparql query belong specific namespace.

short answer - no there no standard direct way this

long answer - yes can limited form of string functions , filter clause. function use depends on version of sparql engine supports.

sparql 1.1 solution

almost implementations these days support sparql 1.1 , can use strstarts() function so:

filter(strstarts(str(?var), "http://example.org/ns#")) 

this preferred approach , should relatively efficient because simple string matching.

sparql 1.0 solution

if stuck using implementation supports sparql 1.0 can still uses regular expressions via regex() function slower:

filter(regex(str(?var), "^http://example\\.org/ns#")) 

regular expressions , meta-characters

note regular expression have escape meta-character . otherwise match character e.g. http://examplexorg/ns#foo considered valid match.

as \ escape character both regular expressions , sparql strings has double escaped here in order regular expression have \. in , treat . literal character.

recommendation

if can use sparql 1.1 because using simpler string functions more performant , avoids need worry escaping meta-characters have when using regex


Comments

Popular posts from this blog

delphi - How to convert bitmaps to video? -

jasper reports - Fixed header in Excel using JasperReports -

python - ('The SQL contains 0 parameter markers, but 50 parameters were supplied', 'HY000') or TypeError: 'tuple' object is not callable -