Korps nättjänst, som till största delen är ett gränssnitt till CQP, används för att hämta information ur Språkbankens korpusar. Nättjänsten ligger på adressen:
http://spraakbanken.gu.se/ws/korp
Frågor till nättjänsten görs genom GET-anrop:
http://spraakbanken.gu.se/ws/korp?command=...&corpus=...&...
Svaret kommer i form av ett JSON-objekt, vilket visas som text i webbläsaren.
Nedan följer en förteckning över de kommandon som stöds av nättjänsten, och vilka argument som accepteras. Argumenten för varje kommando presenteras som en punktlista. När det står
a = ...[opt] q = "XF"[multi] x = ...så betyder det dels att q är optionellt, dels att x kan ta flera värden separerade med kommatecken, dels att URL:en blir:
?a=...&q=XF&x=...,...
Följande argument kan användas vid samtliga frågor:
[opt] encoding = <Teckenkodning för att kommunicera med CQP. Default är UTF-8.>[opt] indent = <Indentering av det strukturerade resultatet för att göra det mer lättläst. Default är att returnera en kompakt JSON-representation utan indentering.>[opt] callback = <En sträng som returneras runt JSON-objektet, ibland nödvändigt vid AJAX-anrop.>Om något blir fel (t.ex. icke-existerande kommando, icke-existerande korpus eller syntaxfel i CQP-uttrycket) så returneras följande:
{
"ERROR": {
"type": <feltyp>,
"value": <felmeddelande>,
"traceback": <Python-information>
}
}
Dessutom returneras alltid ett tidsvärde i JSON-objektet:
{
"time": <antal sekunder det tog för skriptet att svara (realtid, inte CPU-tid)>
}
Hämtar information om vilka korpusar som finns på servern och vilken version av CQP som används.
[opt] command = "info"Returnerar
{
"corpora": [<lista med korpusnamn på servern>],
"cqp-version": <versionsnummer för CQP>
}
Exempel
Hämtar information om en eller flera korpusar och tillhörande attribut.
[opt] command = "info"[multi] corpus = <korpusnamn>Returnerar
{
"corpora": {
<korpusnamn>: {
"attrs": {
"p": [<lista med positionella attribut>],
"s": [<lista med strukturella attribut>],
"a": [<lista med align-attribut, för länkade korpusar>]
},
"info": {
"Charset": <korpusens teckenkodning>,
"Size": <antal tokens i korpusen>
}
}
"total_size": <totalt antal tokens i korpusarna ovan>
}
}
Exempel
Utför konkordanssökning i en eller flera korpusar.
[opt] command = "query"[multi] corpus = <korpus>cqp = <CQP-uttryck>start = <startrad>end = <slutrad>[opt] defaultcontext = <kontext som visas>[opt][multi] context = <kontext som visas för specifik korpus i stället för default, anges som 'korpusnamn:kontext'>[opt, multi] show = <positionella attribut som ska visas>[opt, multi] show_struct = <strukturella attribut som ska visas>[opt] cut = <hur många resultat som max ska sökas på>[opt] within = <begränsa sökningen till inom angivet strukturellt attribut>Även om man inte anger "show=word" så visas ordet i konkordansen.
Returnerar
{
"hits": <totala antalet träffar>,
"corpus_hits": {
<korpus>: <antalet träffar>,
...
}
"kwic": [
<första konkordansraden>,
{
"match": {
"start": <startposition inom raden>,
"end": <slutposition inom raden>,
"position": <globala korpuspositionen för träffen>,
},
"tokens: [
<första token i träffraden>,
{
"word": <ordform>,
"pos": <pos-attributet>,
"saldo": <saldo-attributet>,
...
}
<tredje token i träffraden>,
...
],
<om det ingår länkade korpusar>
"aligned": {
<alignad korpus>: [<lista med tokens>], ...
}
},
<tredje konkordansraden>,
...
]
}
Exempel som visar de 10 första meningarna/länkarna som matchar CQP-frågan: "och" [] [pos="NN"]
Givet ett lemgram hämtas vanliga dependensrelationer detta lemgram förekommer i.
command = "relations"[multi] corpus = <korpus>lemgram = <det lemgram man vill slå upp>[opt] min = <lägsta önskade frekvens>[opt] max = <max antal resultat>Returnerar
{
"relations": [
{
"corpus": [
<lista med korpusar i vilka träffar hittades>
],
"dep": <dependent-lemgram>,
"depextra": <dependent-prefix>,
"freq": <antal förekomster>,
"head": <huvud-lemgram>,
"mi": <lexicographer's mutual information-värde>,
"rel": <relation>
},
...
]
}
Exempel som hämtar dependensrelationer för lemgrammet ge..vb.1
Givet information om en dependensrelation (förslagsvis taget från en ordbildfråga ovan) hämtas de meningar i vilka denna relation förekommer.
command = "relations_sentences"[multi] corpus = <korpus>head = <huvud-lemgram>dep = <dependent-lemgram>[opt] depextra = <dependent-prefix>rel = <relation>[opt] start = <startrad>[opt] end = <slutrad>Returnerar
Returnerar en likadan struktur som för en vanlig konkordansfråga beskriven ovan.
Exempel som hämtar alla meningar innehållande dependensrelationen (ge..vb.1, SS, instruktion..nn.1)
?command=relations_sentences&corpus=ROMI&head=ge..vb.1&dep=instruktion..nn.1&rel=SS
Beräknar frekvensen för ett eller flera attribut givet en CQP-fråga. Både absolut och relativ frekvens ges.
command = "count"cqp = <cqp-uttryck>[multi] groupby = <positionella och/eller strukturella attribut efter vilkas värden träffarna ska grupperas>[multi] corpus = <korpus>[opt] ignore_case = <attribut för vilka skiftläge ska ignoreras>Returnerar
{
"corpora": {
<korpus>: {
"absolute": {
<attribut1/attribut2/attribut3/...>: <absolut frekvens>,
...
},
"relative": {
<attribut1/attribut2/attribut3/...>: <relativ frekvens>,
...
},
"sums": {
"absolute": <absolut summa>,
"relative": <relativ summa>
}
},
},
"total": {
"absolute": {
<attribut1/attribut2/attribut3/...>: <absolut frekvens>,
...
},
"relative": {
<attribut1/attribut2/attribut3/...>: <relativ frekvens>,
...
},
"sums": {
"absolute": <absolut summa>,
"relative": <relativ summa>
}
}
"count": <totalt antal olika värden>
}
Exempel som returnerar frekvenser för de olika ordformerna av lemgrammet ge..vb.1
?command=count&corpus=ROMI&cqp=[lex+contains+"ge..vb.1"]&groupby=word&ignore_case=word