Closed MatthiasGuenter closed 6 years ago
Wird sowieso neu gemacht.
Das ist effektiv ein Problem, wir verwenden *
falsch. Laut SPARQL 1.1 respektive XPath Regex Syntax ist dies "zero or more times", sprich der letzte Buchstaben kann, aber muss nicht vorkommen. Den Effekt den wir wollten wäre korrekterweise ein +
, was laut Spec "one or more times" ist.
@mchlrch könntest Du das beim Tag API noch anpassen im Template?
@ktk Zurzeit kleben wir bei der Vorschlagssuche nur ein '^' vor den eingegebenen String, um auf den Anfang des Tags zu matchen, Wildcards fügen wir sonst keine hinzu.
Ah ok, dann schliesse ich hier mal und wir schauen später was wir erweitern. BTW @mchlrch wir könnten später auch noch den Lucene Index verwenden, das ist allerdings dann Stardog-propiertär: https://www.stardog.com/docs/#_integration_with_sparql
@ktk Wieder mal Regex :-)
SPARQL-Query:
`PREFIX qb: http://purl.org/linked-data/cube# PREFIX skos: http://www.w3.org/2004/02/skos/core# PREFIX rdfs: http://www.w3.org/2000/01/rdf-schema# SELECT * WHERE { GRAPH https://linked.opendata.swiss/graph/zh/statistics { ?obs rdfs:label ?label.
=>>> Wo "Tiere" steht Suchbegriff eingeben. * lassen.
FILTER regex(?label, "Alter*") } } LIMIT 100`
Warum kommt "Alteisen, Metalle" als Suchresultat zurück?
Der Stern scheint einen Buchstaben zu verschlucken in der Suche. Wenn ich nach
"Alteri*"
suche, dann sind nur die Alters drinPS:
*Tier*
funktioniert nicht