Skip to content

Instantly share code, notes, and snippets.

@kasei
Created May 29, 2012 16:17
Show Gist options
  • Save kasei/2829312 to your computer and use it in GitHub Desktop.
Save kasei/2829312 to your computer and use it in GitHub Desktop.
SPARQL 1.1 STRBEFORE test

Data

@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix : <http://example.org/> .

:s1 :str "abc" .
:s2 :str "abc"@en .
:s3 :str "abc"^^xsd:string .

Query

PREFIX : <http://example.org/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT
	?s
	(STRBEFORE(?str,"b") AS ?bb)
	(STRBEFORE(?str,"bc") AS ?bbc)
	(STRBEFORE(?str,"b"@cy) AS ?bbcy)
	(STRBEFORE(?str,"") AS ?b)
	(STRBEFORE(?str,""@en) AS ?ben)
	(STRBEFORE(?str,"b"^^xsd:string) AS ?bbx)
WHERE {
	?s :str ?str
}

Results

<?xml version="1.0" encoding="utf-8"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
<head>
	<variable name="s"/>
	<variable name="bb"/>
	<variable name="bbc"/>
	<variable name="bbcy"/>
	<variable name="b"/>
	<variable name="ben"/>
	<variable name="bbx"/>
</head>
<results>
		<result>
			<binding name="s"><uri>http://example.org/s1</uri></binding>
			<binding name="bb"><literal>a</literal></binding>
			<binding name="bbc"><literal>a</literal></binding>
			<binding name="b"><literal></literal></binding>
			<binding name="bbx"><literal>a</literal></binding>
		</result>
		<result>
			<binding name="s"><uri>http://example.org/s2</uri></binding>
			<binding name="bb"><literal xml:lang="en">a</literal></binding>
			<binding name="bbc"><literal xml:lang="en">a</literal></binding>
			<binding name="b"><literal xml:lang="en"></literal></binding>
			<binding name="ben"><literal xml:lang="en"></literal></binding>
			<binding name="bbx"><literal xml:lang="en">a</literal></binding>
		</result>
		<result>
			<binding name="s"><uri>http://example.org/s3</uri></binding>
			<binding name="bb"><literal datatype="http://www.w3.org/2001/XMLSchema#string">a</literal></binding>
			<binding name="bbc"><literal datatype="http://www.w3.org/2001/XMLSchema#string">a</literal></binding>
			<binding name="b"><literal datatype="http://www.w3.org/2001/XMLSchema#string"></literal></binding>
			<binding name="bbx"><literal datatype="http://www.w3.org/2001/XMLSchema#string">a</literal></binding>
		</result>
</results>
</sparql>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment