Standaarden:SRU/Edurep CQL: verschil tussen versies

Uit Kennisnet Developers Documentatie
Naar navigatie springen Naar zoeken springen
(met python voorbeeld)
(do redirect)
Label: Nieuwe doorverwijzing
 
(4 tussenliggende versies door dezelfde gebruiker niet weergegeven)
Regel 1: Regel 1:
Op Edurep draait niet de [[Standaarden:SRU|standaard CQL]] versie, maar een [https://github.com/seecr/cqlparser aangepaste]. Hiermee kan Edurep zoekvragen afhandelen met de volgende eigenschappen:
#DOORVERWIJZING [[Edurep:Zoekopdracht/Query]]
* De waarde van het query argument mag maximaal 4096 tekens zijn, na urldecoding.
* Er kan binnen specifieke metadata [[Edurep:Veldenlijst|velden]] gezocht worden, met "=" of met "exact" matching.
* Er kunnen meerdere termen voorkomen, waarin booleaanse operatoren als AND, OR en NOT gebruikt kunnen worden.
* De zoekwoorden kunnen alleen letters en cijfers bevatten. Vanwege het indexatieproces zijn speciale karakters als # en $ zijn niet doorzoekbaar.
* Wildcard zoeken is beperkt mogelijk. Zoeken op fiets* is wel mogelijk maar *fiets niet. De fiets* is mogelijk met minimaal 2 karakters. Het zoeken met het wildcard teken in een string (infix) is ook mogelijk, ook met minimaal 2 voorloopkarakters. Er mag maximaal 1 * voorkomen per trefwoord.
* Alle records kunnen opgevraagd worden met de ''edurep'' zoekterm.
 
{{EdurepQuery|query=fiets AND pomp}}
{{SmbQuery|query=saai}}
{{EdurepQuery|query=lom.general.title=fiets AND lom.general.description=zadel}}
{{EdurepQuery|query=lom.technical.format exact "application/pdf"}}
{{SmbQuery|query=smo.hReview.info exact "http://wikiwijs.samendelen.nl/get/smpid:5585/DS1"}}
 
=== encoding ===
In Edurep is niet letterlijk te zoeken op speciale karakters als ü of ë. Deze karakters moeten eerst geëncodeerd worden naar UTF-8. Zoeken op "poëzie" resulteert dan in de volgende query: "poëzie". Op het internet zijn diverse overzichtslijsten en conversietools te vinden.
 
De waarden van SRU argumenten moeten [http://en.wikipedia.org/wiki/Percent-encoding URL-encoded] worden opgegeven omdat een verzoek anders verkeerd kan worden geïnterpreteerd.
 
{| class="wikitable"
|-
| '''te zoeken url'''
| <nowiki>http://www.test.urls.nl/~user/index.html&argument=alsotest</nowiki>
|-
| '''query argument'''
| <nowiki>smo.hReview.info="http://www.test.urls.nl/~user/index.html&argument=alsotest"</nowiki>
|-
| '''url-encoded representatie'''
| smo.hReview.info%3D%22http%3A%2F%2Fwww.test.urls.nl%2F%7Euser%2Findex.html%26argument%3Dalsotest%22
|-
|}
 
=== boolean voorkeur ===
In de Edurep CQL variant hebben de ondersteunde booleans niet allen dezelfde voorkeur. Hieronder staat een CQL query en de (vereenvoudigde) wijze waarop deze wordt geïnterpreteerd door de [https://github.com/seecr/cqlparser gebruikte cqlparser].
 
"vertelplaten NOT lom.rights.cost=yes NOT lom.technical.format=non-digital NOT about.repository.id exact FENC"
 
CQL_QUERY
(
  (
    (
      (
        (
          'vertelplaten'
        ),
        BOOLEAN('not'),
        'lom.rights.cost=yes'
      ),
      BOOLEAN('not'),
      'lom.technical.format=non-digital'
    ),
    BOOLEAN('not'),
    'about.repository exact FENC'
  )
)
 
Installeer en uitvoeren in Python:
<syntaxhighlight lang="python">
>>> from cqlparser import parseString
>>> print parseString("aap").prettyPrint()
</syntaxhighlight>
<noinclude>
[[Categorie:Edurep]]
[[Categorie:Achtergrond]]
</noinclude>

Huidige versie van 21 okt 2021 om 05:11

Doorverwijzing naar: