children path
type: AnnotationProperty
comment: The SPARQL property path where the children of resources can be read. This must be a valid SPARQL property path without any prefix, e.g. <http://schema.org> (including brackets).

children property
type: AnnotationProperty
comment: The URI of a property where the children of resources can be read. This should point to a URI.

datasource
type: AnnotationProperty
comment: The datasource from which a property with value selection should fetch its data.
range: Datasource

label path
type: AnnotationProperty
comment: The SPARQL property path where the label of resources can be read. This must be a valid SPARQL property path without any prefix, e.g. <http://schema.org> (including brackets).
range: string
domain: SPARQL datasource

label property
type: AnnotationProperty
comment: The URI of a property where the label of resources can be read. This should point to a URI.
domain: SPARQL datasource

no sort
type: AnnotationProperty
comment: Set this to true to disable client-side javascript sorting for a datasource. If set to true, the order of elements will be the one returned by the SPARQL query.
range: boolean
domain: SPARQL datasource

tree children datasource
type: AnnotationProperty
comment: A reference to the datasource with which a tree widget will populate the children of a node in the tree.
sub property of: datasource

tree roots datasource
type: AnnotationProperty
comment: A reference to the datasource with which a tree widget will populate its root (first-level) nodes.
sub property of: datasource

query template
type: ObjectProperty
domain: SPARQL datasource
range: SPARQLQuery
comment: The SPARQL query template to be used in a SPARQL datasource. The SPARQL template holds a SPARQL query string in which the placeholders $domain, $property, $range will be replaced by their corresponding values before executing the query. For autocomplete field, the additionnal placeholders $key and $lang will also be replaced by their corresponding values before executing the query The placeholder $labelPath will be replaced by the value indicated in the SparqlDatasource in the labelPath (for a full SPARQL property path) or labelProperty (for a single property URI).

query string
type: DatatypeProperty
domain: Class
  union of: SPARQLQuery
  union of: SPARQL datasource
range: string
comment: The query string of a SPARQLQuery, or directly on a SPARQLDatasource

SPARQL endpoint URL
type: DatatypeProperty
domain: SPARQL datasource
range: anyURI
comment: A SPARQL endpoint URL to which the query should be sent.

Datasource
type: Class
comment: A source of data to populate Sparnatural widgets (list, search fields, trees, etc.)

SPARQL datasource
type: Class
subclass of: Datasource
comment: A source of data for a Sparnatural widget implemented as a SPARQL query.

SPARQL list datasource
type: Class
subclass of: SPARQL datasource
comment: A datasource to populate a list widget, implemented as a SPARQL query. The SPARQL query MUST return 2 variables : ?label and either ?uri or ?value (if returning a literal). It can return other variables as well. The following variables, if present in the SPARQL query, are automatically bound in the query : - $domain: bound to the URI of the subject class of the criteria - $property: bound to the URI or property path of the property of the criteria - $range: bound to the URI of the object class of the criteria - $lang: bound to the default language of Sparnatural - $type: bound to the typePredicate parameter of Sparnatural, rdf:type by default

SPARQL search datasource
type: Class
subclass of: SPARQL datasource
comment: A datasource to populate an autocomplete search widget, implemented as a SPARQL query. The SPARQL query MUST return 2 variables : ?label and either ?uri or ?value (if returning a literal). It can return other variables as well; The following variables, if present in the SPARQL query, are automatically bound in the query : - $domain: bound to the URI of the subject class of the criteria - $property: bound to the URI or property path of the property of the criteria - $range: bound to the URI of the object class of the criteria - $lang: bound to the default language of Sparnatural - $key: the characters entered by the user in the search field - $type: bound to the typePredicate parameter of Sparnatural, rdf:type by default

SPARQL tree datasource for children of a node
type: Class
subclass of: SPARQL datasource
comment: A datasource to populate the children of a node of a tree widget, when unfolded, implemented as a SPARQL query. The query MUST return the following variables: - ?uri - ?label - ?hasChildren: a boolean indicating if the node has some children In addition the query CAN return the following variables: - ?count: the number of times this entity is used as the value of the criteria

SPARQL tree datasource for the roots of the tree
type: Class
subclass of: SPARQL datasource
comment: A datasource to populate the root of a tree widget, implemented as a SPARQL query.

list URI alpha
type: NamedIndividual
type: SPARQL list datasource
query template: query list URI alpha
comment: A datasource that returns a list of entities with their URI as a label ordered alphabetically based on the URI string.

list URI count
type: NamedIndividual
type: SPARQL list datasource
query template: query list URI count
no sort: true
comment: A datasource that returns a list of entities with their URI as a label ordered by the descending number of times the entity is used as a value. This is typically the default behavior for a list without a datasource specified.

list URI or literal alpha
type: NamedIndividual
type: SPARQL list datasource
query template: query list URI or literal alpha
comment: A datasource that returns a list of URI or Literals, ordered alphabetically based on their string representation. It can work indifferently with URIs or Literal values.

list URI or literal alpha with count
type: NamedIndividual
type: SPARQL list datasource
query template: query list URI or literal alpha with count
comment: A datasource that returns a list of URIs or Literals, ordered alphabetically based on their string representation, with their number of occurrences in parenthesis.

list URI or literal count
type: NamedIndividual
type: SPARQL list datasource
query template: query list URI or literal count
comment: A datasource that returns a list of URI or Literals, ordered on their descending number of occurrences. It can work indifferently with URIs or Literal values.

list dctermstitle alpha
type: NamedIndividual
type: SPARQL list datasource
query template: query list label alpha
label property: title
comment: A datasource that returns a list of entities with their dcterms:title ordered alphabetically based on this property.

list dctermstitle alpha with count
type: NamedIndividual
type: SPARQL list datasource
query template: query list label alpha with count
comment: A datasource that returns a list of entities with their dcterms:title and the number of occurrences of the entity in parenthesis, ordered alphabetically based on this property.

list dctermstitle count
type: NamedIndividual
type: SPARQL list datasource
query template: query list label count
label property: title
no sort: true
comment: A datasource that returns a list of entities with their dcterms:title ordered by the descending number of times the entity is used as a value.

list foafname alpha
type: NamedIndividual
type: SPARQL list datasource
query template: query list label alpha
label property: name
comment: A datasource that returns a list of entities with their foaf:name ordered alphabetically based on this property.

list foafname alpha with count
type: NamedIndividual
type: SPARQL list datasource
query template: query list label alpha with count
label property: name
comment: A datasource that returns a list of entities with their foaf:name and the number of occurrences of the entity in parenthesis, ordered alphabetically based on this property.

list foafname count
type: NamedIndividual
type: SPARQL list datasource
query template: query list label count
label property: name
no sort: true
comment: A datasource that returns a list of entities with their foaf:name ordered by the descending number of times the entity is used as a value.

list rdfslabel alpha
type: NamedIndividual
type: SPARQL list datasource
query template: query list label alpha
label property: label
comment: A datasource that returns a list of entities with their rdfs:label ordered alphabetically based on this property.

list rdfslabel alpha with count
type: NamedIndividual
type: SPARQL list datasource
query template: query list label alpha with count
label property: label
comment: A datasource that returns a list of entities with their rdfs:label and the number of occurrences of the entity in parenthesis, ordered alphabetically based on this property.

list rdfslabel count
type: NamedIndividual
type: SPARQL list datasource
query template: query list label count
label property: label
no sort: true
comment: A datasource that returns a list of entities with their rdfs:label ordered by the descending number of times the entity is used as a value.

list schemaname alpha
type: NamedIndividual
type: SPARQL list datasource
query template: query list label alpha
label property: name
comment: A datasource that returns a list of entities with their schema:name ordered alphabetically based on this property.

list schemaname alpha with count
type: NamedIndividual
type: SPARQL list datasource
query template: query list label alpha with count
comment: A datasource that returns a list of entities with their schema:name and the number of occurrences of the entity in parenthesis, ordered alphabetically based on this property.

list schemaname count
type: NamedIndividual
type: SPARQL list datasource
query template: query list label count
label property: name
no sort: true
comment: A datasource that returns a list of entities with their schema:name ordered by the descending number of times the entity is used as a value.

list skospreflabel alpha
type: NamedIndividual
type: SPARQL list datasource
query template: query list label alpha
label property: prefLabel
comment: A datasource that returns a list of entities with their skos:prefLabel ordered alphabetically based on this property.

list skospreflabel alpha with count
type: NamedIndividual
type: SPARQL list datasource
query template: query list label alpha with count
label property: prefLabel
comment: A datasource that returns a list of entities with their skos:prefLabel and the number of occurrences of the entity in parenthesis, ordered alphabetically based on this property.

list skospreflabel count
type: NamedIndividual
type: SPARQL list datasource
query template: query list label count
label property: prefLabel
no sort: true
comment: A datasource that returns a list of entities with their skos:prefLabel ordered by the descending number of times the entity is used as a value.

literal list alpha
type: NamedIndividual
type: SPARQL list datasource
query template: query literal list alpha
comment: A datasource that returns a list of literal ordered alphabetically.

literal list alpha with count
type: NamedIndividual
type: SPARQL list datasource
query template: query literal list alpha with count
comment: A datasource that returns a list of literal with count in parenthesis, ordered alphabetically.

literal list count
type: NamedIndividual
type: SPARQL list datasource
query template: query literal list count
no sort: true
comment: A datasource that returns a list of literal ordered by descending number of occurrences.

query list URI alpha
type: NamedIndividual
type: SPARQLQuery
query string: SELECT DISTINCT ?uri (STR(?uri) AS ?label) WHERE { ?domain $type $domain . ?domain $property ?uri . FILTER(isIRI(?uri)) # Note how the range criteria is not used in this query } ORDER BY UCASE(?label) LIMIT 500

query list URI count
type: NamedIndividual
type: SPARQLQuery
query string: SELECT ?uri ?count (CONCAT(STR(?uri), ' (', STR(?count), ')') AS ?label) (STR(?uri) AS ?itemLabel) WHERE { { SELECT DISTINCT ?uri (COUNT(?domain) AS ?count) WHERE { ?domain $type $domain . ?domain $property ?uri . FILTER(isIRI(?uri)) # Note how the range criteria is not used in this query } GROUP BY ?uri } } ORDER BY DESC(?count) UCASE(?label) LIMIT 500

query list URI or literal alpha
type: NamedIndividual
type: SPARQLQuery
query string: SELECT DISTINCT ?value (CONCAT(IF(isLiteral(?value) && LANG(?value) != '' && LANG(?value) != $lang,CONCAT(STR(?value), " (",LANG(?value),")"),STR(?value))) AS ?label) WHERE { ?domain $type $domain . { { ?domain $property ?value . FILTER(isIRI(?value)) } UNION { ?domain $property ?value . FILTER(isLiteral(?value) && (lang(?value) = $lang)) } UNION { ?domain $property ?value . FILTER(isLiteral(?value) && (lang(?value) = $defaultLang)) FILTER NOT EXISTS { ?domain $property ?valuePrefLang . FILTER(LANG(?valuePrefLang) = $lang) } } UNION { ?domain $property ?value . FILTER(isLiteral(?value) && (lang(?value) = "")) FILTER NOT EXISTS { ?domain $property ?valueAnyLang . FILTER((LANG(?valueAnyLang) = $lang) || (LANG(?valueAnyLang) = $defaultLang)) } } } # Note how the range criteria is not used in this query } ORDER BY UCASE(?label) LIMIT 500

query list URI or literal alpha with count
type: NamedIndividual
type: SPARQLQuery
query string: SELECT DISTINCT ?value ?count (CONCAT(IF(isLiteral(?value) && LANG(?value) != '' && LANG(?value) != $lang,CONCAT(STR(?value), " (",LANG(?value),")"),STR(?value)), ' (', STR(?count), ')') AS ?label) (STR(?value) AS ?itemLabel) WHERE { { SELECT DISTINCT ?value (COUNT(DISTINCT ?domain) AS ?count) WHERE { ?domain $type $domain . { { ?domain $property ?value . FILTER(isIRI(?value)) } UNION { ?domain $property ?value . FILTER(isLiteral(?value) && (lang(?value) = $lang)) } UNION { ?domain $property ?value . FILTER(isLiteral(?value) && (lang(?value) = $defaultLang)) FILTER NOT EXISTS { ?domain $property ?valuePrefLang . FILTER(LANG(?valuePrefLang) = $lang) } } UNION { ?domain $property ?value . FILTER(isLiteral(?value) && (lang(?value) = "")) FILTER NOT EXISTS { ?domain $property ?valueAnyLang . FILTER((LANG(?valueAnyLang) = $lang) || (LANG(?valueAnyLang) = $defaultLang)) } } } } GROUP BY ?value } } ORDER BY UCASE(?label) LIMIT 500

query list URI or literal count
type: NamedIndividual
type: SPARQLQuery
query string: SELECT ?value ?count (CONCAT(IF(isLiteral(?value) && LANG(?value) != '' && LANG(?value) != $lang,CONCAT(STR(?value), " (",LANG(?value),")"),STR(?value)), ' (', STR(?count), ')') AS ?label) (STR(?value) AS ?itemLabel) WHERE { { SELECT DISTINCT ?value (COUNT(DISTINCT ?domain) AS ?count) WHERE { ?domain $type $domain . { { ?domain $property ?value . FILTER(isIRI(?value)) } UNION { ?domain $property ?value . FILTER(isLiteral(?value) && (lang(?value) = $lang)) } UNION { ?domain $property ?value . FILTER(isLiteral(?value) && (lang(?value) = $defaultLang)) FILTER NOT EXISTS { ?domain $property ?valuePrefLang . FILTER(LANG(?valuePrefLang) = $lang) } } UNION { ?domain $property ?value . FILTER(isLiteral(?value) && (lang(?value) = "")) FILTER NOT EXISTS { ?domain $property ?valueAnyLang . FILTER((LANG(?valueAnyLang) = $lang) || (LANG(?valueAnyLang) = $defaultLang)) } } } } GROUP BY ?value } } ORDER BY DESC(?count) UCASE(?label) LIMIT 500
no sort: true

query list label alpha
type: NamedIndividual
type: SPARQLQuery
query string: SELECT DISTINCT ?uri ?label WHERE { ?domain $type $domain . ?domain $property ?uri . # Note how the range criteria is not used in this query ?uri $labelPath ?label . FILTER(isIRI(?uri)) FILTER(lang(?label) = "" || lang(?label) = $lang) } ORDER BY UCASE(?label) LIMIT 500

query list label alpha with count
type: NamedIndividual
type: SPARQLQuery
query string: SELECT ?uri ?count (CONCAT(STR(?theLabel), ' (', STR(?count), ')') AS ?label) (STR(?theLabel) AS ?itemLabel) WHERE { { SELECT ?uri ?count ?theLabel WHERE { { SELECT DISTINCT ?uri (COUNT(?domain) AS ?count) WHERE { ?domain $type $domain . ?domain $property ?uri . FILTER(isIRI(?uri)) } GROUP BY ?uri } ?uri $labelPath ?theLabel . FILTER(lang(?theLabel) = "" || lang(?theLabel) = $lang) } ORDER BY UCASE(?theLabel) LIMIT 500 } } ORDER BY UCASE(?label)

query list label count
type: NamedIndividual
type: SPARQLQuery
query string: SELECT ?uri ?count (CONCAT(STR(?theLabel), ' (', STR(?count), ')') AS ?label) (STR(?theLabel) AS ?itemLabel) WHERE { { SELECT ?uri ?count ?theLabel WHERE { { SELECT DISTINCT ?uri (COUNT(?domain) AS ?count) WHERE { ?domain $type $domain . ?domain $property ?uri . FILTER(isIRI(?uri)) } GROUP BY ?uri } ?uri $labelPath ?theLabel . FILTER(lang(?theLabel) = "" || lang(?theLabel) = $lang) } ORDER BY DESC(?count) UCASE(?theLabel) LIMIT 500 } } ORDER BY DESC(?count) UCASE(?label)

query list label with range alpha
type: NamedIndividual
type: SPARQLQuery
query string: SELECT DISTINCT ?uri ?label WHERE { ?domain $type $domain . ?domain $property ?uri . # range criteria ?uri $type $range . ?uri $labelPath ?label . FILTER(isIRI(?uri)) FILTER(lang(?label) = "" || lang(?label) = $lang) } ORDER BY UCASE(?label) LIMIT 500

query list label with range alpha with count
type: NamedIndividual
type: SPARQLQuery
query string: SELECT ?uri ?count (CONCAT(STR(?theLabel), ' (', STR(?count), ')') AS ?label) (STR(?theLabel) AS ?itemLabel) WHERE { { SELECT ?uri ?count ?theLabel WHERE { { SELECT DISTINCT ?uri (COUNT(?domain) AS ?count) WHERE { ?domain $type $domain . ?domain $property ?uri . FILTER(isIRI(?uri)) # range criteria ?uri $type $range . } GROUP BY ?uri } ?uri $labelPath ?theLabel . FILTER(lang(?theLabel) = "" || lang(?theLabel) = $lang) } ORDER BY UCASE(?theLabel) LIMIT 500 } } ORDER BY UCASE(?label)

query list label with range count
type: NamedIndividual
type: SPARQLQuery
query string: SELECT ?uri ?count (CONCAT(STR(?theLabel), ' (', STR(?count), ')') AS ?label) (STR(?theLabel) AS ?itemLabel) WHERE { { SELECT ?uri ?count ?theLabel WHERE { { SELECT DISTINCT ?uri (COUNT(?domain) AS ?count) WHERE { ?domain $type $domain . ?domain $property ?uri . FILTER(isIRI(?uri)) ?uri $type $range . } GROUP BY ?uri } ?uri $labelPath ?theLabel . FILTER(lang(?theLabel) = "" || lang(?theLabel) = $lang) } ORDER BY DESC(?count) UCASE(?theLabel) LIMIT 500 } } ORDER BY DESC(?count) UCASE(?label)

query literal list alpha
type: NamedIndividual
type: SPARQLQuery
query string: SELECT DISTINCT ?value (STR(?value) AS ?label) WHERE { ?domain $type $domain . ?domain $property ?value . } ORDER BY UCASE(?label) LIMIT 500

query literal list alpha with count
type: NamedIndividual
type: SPARQLQuery
query string: SELECT ?count (CONCAT(STR(?theLabel), ' (', STR(?count), ')') AS ?label) (STR(?theLabel) AS ?itemLabel) WHERE { { SELECT DISTINCT ?count ?theLabel WHERE { { SELECT DISTINCT ?theLabel (COUNT(?theLabel) AS ?count) WHERE { ?domain $type $domain . ?domain $property ?theLabel . FILTER(lang(?theLabel) = "" || lang(?theLabel) = $lang) } GROUP BY ?theLabel } } ORDER BY UCASE(?theLabel) LIMIT 500 } } ORDER BY UCASE(?label)

query literal list count
type: NamedIndividual
type: SPARQLQuery
query string: SELECT ?count (CONCAT(STR(?theLabel), ' (', STR(?count), ')') AS ?label) (STR(?theLabel) AS ?itemLabel) WHERE { { SELECT DISTINCT ?count ?theLabel WHERE { { SELECT DISTINCT ?theLabel (COUNT(?theLabel) AS ?count) WHERE { ?domain $type $domain . ?domain $property ?theLabel . FILTER(lang(?theLabel) = "" || lang(?theLabel) = $lang) } GROUP BY ?theLabel } } ORDER BY DESC(?count) UCASE(?theLabel) LIMIT 500 } } ORDER BY DESC(?count) UCASE(?label)

query search URI contains
type: NamedIndividual
type: SPARQLQuery
query string: SELECT DISTINCT ?uri ?label WHERE { ?domain $type $domain . ?domain $property ?uri . ?uri $type $range . FILTER(isIRI(?uri)) BIND(STR(?uri) AS ?label) FILTER(CONTAINS(LCASE(?label), LCASE("$key"))) } ORDER BY UCASE(?label) LIMIT 15

query search label bifcontains
type: NamedIndividual
type: SPARQLQuery
query string: PREFIX bif: <http://www.openlinksw.com/schemas/bif#> SELECT DISTINCT ?uri ?label WHERE { ?domain $type $domain . ?domain $property ?uri . ?uri $type $range . ?uri $labelPath ?label . FILTER(isIRI(?uri)) FILTER(lang(?label) = '' || lang(?label) = $lang ) # Note the single quote to handle space character ?label bif:contains "'$key'" . } ORDER BY UCASE(?label) LIMIT 15

query search label contains
type: NamedIndividual
type: SPARQLQuery
query string: SELECT DISTINCT ?uri ?label WHERE { ?domain $type $domain . ?domain $property ?uri . ?uri $type $range . ?uri $labelPath ?label . FILTER(isIRI(?uri)) FILTER(lang(?label) = '' || lang(?label) = $lang) FILTER(CONTAINS(LCASE(STR(?label)), LCASE("$key"))) } ORDER BY UCASE(?label) LIMIT 15

query search label strstarts
type: NamedIndividual
type: SPARQLQuery
query string: SELECT DISTINCT ?uri ?label WHERE { ?domain $type $domain . ?domain $property ?uri . ?uri $type $range . ?uri $labelPath ?label . FILTER(isIRI(?uri)) FILTER(lang(?label) = '' || lang(?label) = $lang) FILTER(STRSTARTS(LCASE(STR(?label)), LCASE("$key"))) } ORDER BY UCASE(?label) LIMIT 15

query search literal contains
type: NamedIndividual
type: SPARQLQuery
query string: SELECT DISTINCT ?value ?label WHERE { ?domain $type $domain . ?domain $property ?value . FILTER(isLiteral(?value)) BIND(STR(?value) AS ?label) FILTER(CONTAINS(LCASE(STR(?value)), LCASE("$key"))) } ORDER BY UCASE(?label) LIMIT 15

query search literal strstarts
type: NamedIndividual
type: SPARQLQuery
query string: SELECT DISTINCT ?value ?label WHERE { ?domain $type $domain . ?domain $property ?value . FILTER(isLiteral(?value)) BIND(STR(?value) AS ?label) FILTER(STRSTARTS(LCASE(STR(?value)), LCASE("$key"))) } ORDER BY UCASE(?label) LIMIT 15

query tree children
type: NamedIndividual
type: SPARQLQuery
query string: # Selects the children of a node SELECT DISTINCT ?uri ?label ?hasChildren WHERE { $node $childrenPath ?uri . ?uri $labelPath ?label . FILTER(isIRI(?uri)) FILTER(lang(?label) = '' || lang(?label) = $lang) OPTIONAL { ?uri $childrenPath ?children . } BIND(IF(bound(?children),true,false) AS ?hasChildren) } ORDER BY UCASE(?label)

query tree children with count
type: NamedIndividual
type: SPARQLQuery
query string: SELECT ?uri (CONCAT(STR(?theLabel), ' (', STR(?count), ')') AS ?label) ?hasChildren ?count (STR(?theLabel) AS ?itemLabel) WHERE { { SELECT DISTINCT ?uri ?theLabel ?hasChildren (COUNT(?x) AS ?count) WHERE { { SELECT ?uri ?theLabel ?hasChildren WHERE { $node $childrenPath ?uri . ?uri $labelPath ?theLabel . FILTER(isIRI(?uri)) FILTER(lang(?theLabel) = '' || lang(?theLabel) = $lang) OPTIONAL { ?uri $childrenPath ?children . } BIND(IF(bound(?children),true,false) AS ?hasChildren) } } OPTIONAL { ?x $type $domain . ?x $property ?uri . # no range criteria # ?uri a $range . } } GROUP BY ?uri ?theLabel ?hasChildren } } ORDER BY UCASE(?label)

query tree root noparent
type: NamedIndividual
type: SPARQLQuery
query string: SELECT ?uri ?label ?hasChildren WHERE { ?uri $type $range . FILTER NOT EXISTS { ?parent $childrenPath ?uri . } ?uri $labelPath ?label . FILTER(isIRI(?uri)) FILTER(lang(?label) = '' || lang(?label) = $lang) OPTIONAL { ?uri $childrenPath ?children . } BIND(IF(bound(?children),true,false) AS ?hasChildren) } ORDER BY UCASE(?label)

query tree root noparent with count
type: NamedIndividual
type: SPARQLQuery
query string: SELECT ?uri (CONCAT(STR(?theLabel), ' (', STR(?count), ')') AS ?label) ?hasChildren ?count (STR(?theLabel) AS ?itemLabel) WHERE { { SELECT ?uri ?theLabel ?hasChildren (COUNT(?x) AS ?count) WHERE { { SELECT ?uri ?theLabel ?hasChildren WHERE { ?uri $type $range . FILTER NOT EXISTS { ?parent $childrenPath ?uri . } ?uri $labelPath ?theLabel . FILTER(isIRI(?uri)) FILTER(lang(?theLabel) = '' || lang(?theLabel) = $lang) OPTIONAL { ?uri $childrenPath ?children . } BIND(IF(bound(?children),true,false) AS ?hasChildren) } } OPTIONAL { ?x $type $domain . ?x $property ?uri . } } GROUP BY ?uri ?theLabel ?hasChildren } } ORDER BY UCASE(?label)

search URI contains
type: NamedIndividual
type: SPARQL search datasource
query template: query search URI contains
comment: Searches for entities by looking up the provided $key in their URI string using the CONTAINS SPARQL function.

search dctermstitle bifcontains
type: NamedIndividual
type: SPARQL search datasource
query template: query search label bifcontains
label property: title
comment: Searches for entities by looking up the provided $key inside their dcterms:title using the bif:contains Virtuoso function.

search dctermstitle contains
type: NamedIndividual
type: SPARQL search datasource
query template: query search label contains
label property: title
comment: Searches for entities by looking up the provided $key inside their dcterms:title using the CONTAINS SPARQL function.

search dctermstitle strstarts
type: NamedIndividual
type: SPARQL search datasource
query template: query search label strstarts
label property: title
comment: Searches for entities by looking up the provided $key at the beginning of their dcterms;title using the STRSTARTS SPARQL function.

search foafname bifcontains
type: NamedIndividual
type: SPARQL search datasource
query template: query search label bifcontains
label property: name
comment: Searches for entities by looking up the provided $key inside their foaf:name using the bif:contains Virtuoso function.

search foafname contains
type: NamedIndividual
type: SPARQL search datasource
query template: query search label contains
label property: name
comment: Searches for entities by looking up the provided $key inside their foaf:name using the CONTAINS SPARQL function.

search foafname strstarts
type: NamedIndividual
type: SPARQL search datasource
query template: query search label strstarts
label property: name
comment: Searches for entities by looking up the provided $key at the beginning of their foaf:name using the STRSTARTS SPARQL function.

search rdfslabel bifcontains
type: NamedIndividual
type: SPARQL search datasource
query template: query search label bifcontains
label property: label
comment: Searches for entities by looking up the provided $key inside their rdfs:label using the bif:contains Virtuoso function.

search rdfslabel contains
type: NamedIndividual
type: SPARQL search datasource
query template: query search label contains
label property: label
comment: Searches for entities by looking up the provided $key inside their rdfs:label using the CONTAINS SPARQL function.

search rdfslabel strstarts
type: NamedIndividual
type: SPARQL search datasource
query template: query search label strstarts
label property: label
comment: Searches for entities by looking up the provided $key at the beginning of their rdfs:label using the STRSTARTS SPARQL function.

search schemaname bifcontains
type: NamedIndividual
type: SPARQL search datasource
query template: query search label bifcontains
label path: name
comment: Searches for entities by looking up the provided $key inside their schema:name using the bif:contains Virtuoso function.

search schemaname contains
type: NamedIndividual
type: SPARQL search datasource
query template: query search label contains
label property: name
comment: Searches for entities by looking up the provided $key inside their schema:name using the CONTAINS SPARQL function.

search schemaname strstarts
type: NamedIndividual
type: SPARQL search datasource
query template: query search label strstarts
label property: name
comment: Searches for entities by looking up the provided $key at the beginning of their schema:name using the STRSTARTS SPARQL function.

search skospreflabel bifcontains
type: NamedIndividual
type: SPARQL search datasource
query template: query search label bifcontains
label path: prefLabel
comment: Searches for entities by looking up the provided $key inside their skos:prefLabel using the bif:contains Virtuoso function.

search skospreflabel contains
type: NamedIndividual
type: SPARQL search datasource
query template: query search label contains
label property: prefLabel
comment: Searches for entities by looking up the provided $key inside their skos:prefLabel using the CONTAINS SPARQL function.

search skospreflabel strstarts
type: NamedIndividual
type: SPARQL search datasource
query template: query search label strstarts
label property: prefLabel
comment: Searches for entities by looking up the provided $key at the beginning of their skos:prefLabel using the STRSTARTS SPARQL function.

tree children skosnarrower
type: NamedIndividual
type: SPARQL tree datasource for children of a node
query template: query tree children
children path: <http://www.w3.org/2004/02/skos/core#narrower>|^<http://www.w3.org/2004/02/skos/core#broader>
label path: <http://www.w3.org/2004/02/skos/core#prefLabel>

tree children skosnarrower with count
type: NamedIndividual
type: SPARQL tree datasource for children of a node
query template: query tree children with count
children path: <http://www.w3.org/2004/02/skos/core#narrower>|^<http://www.w3.org/2004/02/skos/core#broader>
label path: <http://www.w3.org/2004/02/skos/core#prefLabel>

tree root skostopconcept
type: NamedIndividual
type: SPARQL tree datasource for the roots of the tree
query string: PREFIX skos: <http://www.w3.org/2004/02/skos/core#> SELECT DISTINCT ?uri ?label ?hasChildren WHERE { $range skos:hasTopConcept|^skos:topConceptOf ?uri . ?uri skos:prefLabel ?label . FILTER(isIRI(?uri)) FILTER(lang(?label) = '' || lang(?label) = $lang) OPTIONAL { ?uri skos:narrower|^skos:broader ?children . } BIND(IF(bound(?children),true,false) AS ?hasChildren) } ORDER BY UCASE(?label)

tree root skostopconcept with count
type: NamedIndividual
type: SPARQL tree datasource for the roots of the tree
query string: PREFIX skos: <http://www.w3.org/2004/02/skos/core#> SELECT ?uri (CONCAT(STR(?theLabel), ' (', STR(?count), ')') AS ?label) ?hasChildren ?count WHERE { { SELECT ?uri ?theLabel ?hasChildren (COUNT(?x) AS ?count) WHERE { { SELECT ?uri ?theLabel ?hasChildren WHERE { $range skos:hasTopConcept|^skos:topConceptOf ?uri . ?uri skos:prefLabel ?theLabel . FILTER(isIRI(?uri)) FILTER(lang(?theLabel) = '' || lang(?theLabel) = $lang) OPTIONAL { ?uri skos:narrower|^skos:broader ?children . } BIND(IF(bound(?children),true,false) AS ?hasChildren) } } OPTIONAL { ?x a $domain . ?x $property ?uri . # no range criteria # ?uri a $range . } } GROUP BY ?uri ?theLabel ?hasChildren } } ORDER BY UCASE(?label)

query tree root domain
type: NamedIndividual
type: SPARQLQuery
query string: PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT DISTINCT ?uri ?label ?hasChildren WHERE { VALUES ?uri {$domain} ?uri $labelPath ?label . OPTIONAL { ?uri $childrenPath ?children . } FILTER(lang(?label) = '' || lang(?label) = $lang) BIND(IF(bound(?children),true,false) AS ?hasChildren) }
comment: Assumes that the domain URI is the root of the tree we want to build. Useful to build hierarchies based on rdfs:subClassOf.

tree children subClassOf
type: NamedIndividual
type: SPARQL tree datasource for children of a node
query template: query tree children
children path: ^<http://www.w3.org/2000/01/rdf-schema#subClassOf>
label path: <http://www.w3.org/2000/01/rdf-schema#label>

tree root domain subClassOf
type: NamedIndividual
type: SPARQL tree datasource for the roots of the tree
query template: query tree root domain
children path: ^<http://www.w3.org/2000/01/rdf-schema#subClassOf>
label path: <http://www.w3.org/2000/01/rdf-schema#label>