búsquedas complejas
Las búsquedas complejas son aquellas que agrupan varias búsquedas combinadas en la misma consulta. A continuación se ofrecen algunos ejemplos:
[(lemma='traer'%c) & (pos='V.II.*' | pos='V.SI.*'%c)]→ para encontrar tanto las formas de pretérito imperfecto de indicativo como las de subjuntivo del verbo traer; esta búsqueda puede también escribirse así:[(lemma='traer'%c) & (pos='V.[IS]I.*'%c)][(lemma='traer'%c) &! (pos='V.[IS]I.*'%c)]→ para encontrar todas las formas del verbo traer, excepto las de pretérito imperfecto de indicativo y las de pretérito imperfecto de subjuntivo.[(word='a.*'%c) &! (pos='SP.*' | pos='V.*'%c)\]→ para encontrar todas las ocurrencias de a, excepto cuando se trata de una preposición o un verbo.[(word='co[gn]?no[sσ]?[cçzσ]er'%c)] [(word='a' & pos='SP.*'%c)] []→ para encontrar todas las formas del infinitivo conocer seguidas de la preposición a y de cualquier otra palabra.[(pos='NC.*'%c) & (word='[aeiou].*'%c)] [(pos='SP.*'%c) & (word='de'%c)] [(pos='NC.*'%c) & (word='[aeiou].*'%c)]→ para encontrar dos sustantivos que comienzan con una vocal y están relacionados entre sí por la preposición "de".[(pos!='SPS00#DA.+'%c) & (pos!='DA.+'%c)] [(pos='DP.+'%c)] [(pos='NC.+'%c)]→ para encontrar todos los casos de posesivo (DP) más sustantivo (NC) siempre y cuando no les preceda un artículo, tanto por separado (DA) como aglutinado con preposición.[(lemma='bien'%c)] [(lemma!='haber'%c) | (lemma!='tener'%c)]→ para encontrar cualquiera de las formas del lema bien seguido por cualquier palabra, excepto las correspondientes a los lemas haber o tener.
NOTA: Conviene señalar que expresiones regulares aparentemente similares pueden encontrar resultados ligeramente diferentes: [(lemma='bien'%c)] [(lemma!='haber'%c) | (lemma!='tener'%c)] :: match.text_hsmscod = "GE1" (1093 casos), [(lemma='bien'%c)] [(lemma!='haber'%c) & (lemma!='tener'%c)] :: match.text_hsmscod = "GE1" (1086 casos), [(lemma='bien'%c)] [(lemma!='haber'%c) & (lemma!='tener'%c)] :: match.text_hsmscod = "GE1" (1086 casos), por lo cual en ocasiones conviene probar con diferentes expresiones para encontrar aquella que ofrece los mejores resultados.
ejemplos de consultas
Para mostrar las posibilidades del Old Spanish Textual Archive, se ofrecen a continuación una serie de ejemplos concretos de consultas con los filtros utilizados. Debe recordarse que es posible descargar los resultados en un fichero TSV para su posterior manipulación con otros programas (Excel, R, etc.)
léxico disponible en un autor, obra, o materia
Esta consulta devuelve todo el léxico utilizado en un autor concreto, una obra, o una materia:
[(word='.*'%c)] :: match.text_autor = "Francisco Imperial" within text sort by yearobra[(word='.*'%c)] :: match.text_titulo = "Tragicomedia de Calisto y Melibea" within text sort by yearobra[(word='.*'%c)] :: match.text_materia3 = "escatología" within text sort by yearobra
adjetivos utilizados en las obras en verso del siglo XV.
Esta consulta devuelve todos los adjetivos calificativos utilizados en la poesía del siglo XV:
[(pos='AQ.*'%c)] :: match.text_tipo = "verso" & match.text_sigloobra = "15" within text sort by yearobra
consulta por etiqueta estructural
Los textos incluidos en OSTA contienen una serie de etiquetas estructurales que reflejan la disposición del texto en la página. Esta consulta, efectuada en una obra poética, devuelve todas las rimas:
[(word='.*'%c)]</line> :: match.text_hsmscod = "SEM" within text
Esta consulta devuelve la primera palabra contenida en los reclamos de una obra:
<cw>[(word='.*'%c)] :: match.text_hsmscod = "ABC" within text
Esta consulta devuelve las G iniciales que ocupan 5 líneas de texto:
<cap_id='5'>[(word='g.*'%c)\] within text
extracción de todas las formas del imperfecto de subjuntivo
En la forma más sencilla de una consulta para obtener una lista de todas las formas del imperfecto de subjuntivo, se puede simplemente usar la etiqueta morfológica:
[(pos='V.SI.*'%c)] within text sort by yearobra
sin embargo, es posible afinar aún más nuestros resultados con dos consultas que permiten sacar una lista de las formas tipo amara y otra de las formas tipo amase:
[(word='.*[ea]ra.*' & pos='V.SI.*'%c)] within text sort by yearobra[(word='.*[ea]s+e.*' & pos='V.SI.*'%c)] within text sort by yearobra
extracción de adverbios en -mente
La siguiente consulta busca todas las palabras que terminan en -mientre/-mjentre/-myentre/-mente o las combinaciones de una palabra seguida por otra que termina en -mientre/-mjentre/-myentre/ -mente.
[(word='.*m[ijy]?entr?e'%c)] | [] [(word='m[ijy]?entr?e'%c)] within text sort by yearobra
Sin embargo, esta consulta devuelve también formas no adverbiales como escarmjente, estrumente, oropimente y simiente. Se pueden afinar más los dos términos de la consulta y limitarla a palabras que terminan en -mientre/-mjentre/-myentre/-mente que posean la etiqueta morfológica de adverbio:
[(word='.*m[ijy]?entr?e' & pos='RM'%c)]
y a la combinación de una palabra que posea la etiqueta morfológica de adjetivo seguida por otra que termine en -mientre/-mjentre/-myentre/-mente.
[(pos='A.*'%c)] [(word='m[ijy]?entr?e'%c)]
dando como resultado la siguiente consulta:
[(word='.*m[ijy]?entr?e' & pos='RM'%c)] | [(pos='A.*'%c)] [(word='m[ijy]?entr?e'%c)] within text sort by yearobra
extracción de variantes ortográficas de verbos en -cer
La siguiente consulta busca todas las palabras terminadas en -cer/-çer/-zer/σer/-scer/-sçer/-szer
[(word='.*s?[cçzσ]er'%c)] within text sort by yearobra
Para obtener solo los infinitivos hay que indicar la etiqueta morfológica correspondiente:
[(word='.*s?[cçzσ]er' & pos='V.N.*'%c)] within text sort by yearobra
Es posible afinar aún más los resultados y sacar una lista con todos los infinitivos en -cer/-çer/-zer/-σer y otra con todos los terminados en -scer/sçer/-szer
[(word='.*[^s][cçzσ]er' & pos='V.N.*'%c)] within text sort by yearobra[(word='.*s[cçzσ]er' & pos='V.N.*'%c)] within text sort by yearobra
extracción de colocaciones del tipo "venirle en voluntad"
Esta consulta busca 1) cualquier forma de venir seguida por 2) cualquier forma de voluntad, encontrándose 1) y 2) separadas por una palabra (uino a uoluntad, venian con voluntad, etc.):
[(lemma='venir'%c)] [] [(lemma='voluntad'%c)] within text sort by yearobra
Si se emplea el operador ? la consulta busca 1) cualquier forma de venir seguida por 2) cualquier forma de voluntad, encontrándose 1) y 2) separadas por cero o una palabra (venga voluntad, ujene en voluntad, etc.):
[(lemma='venir'%c)] []? [(lemma='voluntad'%c)] within text sort by yearobra
Es posible delimitar el número de palabras que separan 1) y 2). Para ello se repite el operador [] tantas veces como palabras separan 1) y 2) (vino vos a voluntad, venir de buena voluntad, etc.):
[(lemma='venir'%c)] [] [] [(lemma='voluntad'%c)] within text sort by yearobra
o bien se puede utilizar el operador de repetición {m,n} para determinar el número mínimo y máximo de palabras que pueden separar 1) y 2) (vino voluntad, venia con voluntad, vernia con mucha voluntad, venia de muy buena voluntad):
[(lemma='venir'%c)] []{0,3} [(lemma='voluntad'%c)] within text sort by yearobra
Finalmente, es posible encontrar colocaciones similares aumentando el número de términos en 1) y 2):
[(lemma='venir'%c) | (lemma='entrar'%c) | (lemma='caer'%c)] []{0,3} [(lemma='deseo'%c) | (lemma='propósito'%c) | (lemma='voluntad'%c) | (lemma='pensamiento'%c)] within text sort by yearobra
extracción de colocaciones del tipo "verbo+pronombre sujeto / pronombre sujeto+verbo"
La siguiente consulta busca todas las formas de 1ª persona del presente de indicativo de los verbos ser, dar, ir, estar, precedidas por cualquier forma del pronombre yo, en textos del siglo XIV:
[(pos='PP1CSN00'%c)] \[(lemma='dar' & pos='V.IP1S.'%c) | (lemma='ser' & pos='V.IP1S.'%c) | (lemma='estar' & pos='V.IP1S.'%c) | (lemma='ir' & pos='V.IP1S.'%c)] match.text_sigloobra = "14" within text sort by yearobra
Mientras que la siguiente consulta busca todas las formas de 1ª persona del presente de indicativo de los verbos ser, dar, ir, estar, seguidas por cualquier forma del pronombre yo:
[(lemma='dar' & pos='V.IP1S.'%c) | (lemma='ser' & pos='V.IP1S.'%c) | (lemma='estar' & pos='V.IP1S.'%c) | (lemma='ir' & pos='V.IP1S.'%c)] [(pos='PP1CSN00'%c)] match.text_sigloobra = "14" within text sort by yearobra
Es posible combinar ambas consultas y buscar simultáneamente todas las formas de 1ª persona del presente de indicativo de los verbos ser, dar, ir, estar, precedidas o seguidas por cualquier forma del pronombre yo:
[(pos='PP1CSN00'%c)] [(lemma='dar' & pos='V.IP1S.'%c) | (lemma='ser' & pos='V.IP1S.'%c) | (lemma='estar' & pos='V.IP1S.'%c) | (lemma='ir' & pos='V.IP1S.'%c)] | [(lemma='dar' & pos='V.IP1S.'%c) | (lemma='ser' & pos='V.IP1S.'%c) | (lemma='estar' & pos='V.IP1S.'%c) | (lemma='ir' & pos='V.IP1S.'%c)] [(pos='PP1CSN00'%c)] match.text_sigloobra = "14" within text sort by yearobra
extracción de casos de desdoblamiento de género "moros & moras", "los moros & las moras".
Las siguientes consultas permiten extraer todos los pares de sustantivos masculinos y femeninos unidos por cualquier forma la conjunción copulativa "y" (y, e, et, &), con o sin artículo definido delante del sustantivo.
[(pos='NCM.*'%c)] [(lemma='y'%c)] [(pos='NCF.*'%c)] within text sort by word[(pos='DA.M.*'%c)] [(pos='NCM.*'%c)] [(lemma='y'%c)] [(pos='DA.F.*'%c)] [(pos='NCF.*'%c)] within text sort by yearobra
extracción de formas aglutinadas (p. ej. delas, daquellos, selo, etc.) y pronombres clíticos (comerselas, noslo, ofreçedle, quereldo, etc.).
Las formas aglutinadas no necesitan tratamiento especial, así, la consulta
[(word='selas'%c)] within text sort by yearobra
devuelve todas estas formas con el siguiente análisis: selas <se#lo> [PC3CN000#PC3FPA00]; con la almohadilla # separando los lemas de la forma aglutinada y sus correspondientes etiquetas gramaticales. Por su parte, la consulta
[(word='diomelo')] within text sort by yearcodice
devuelve todas estas formas con el siguiente análisis: diomelo <dar#me#lo> [VMIS3S0#PC1CS000#PC3CNA00].
Para buscar las formas aglutinadas es preciso utilizar también la almohadilla #. Esta consulta permite encontrar todas las formas aglutinadas que no sean verbos
[(lemma='.+#.+' & pos!='V.+'%c)] within text sort by yearobra
y esta otra todos los casos de aglutinación de la preposición de con un demostrativo (daquel, daquellos, destas, etc.)
[(lemma='de.+' & pos='SP.+#DD.+'%c)] within text sort by yearobra
Los pronombres clíticos aparecen identificados con la etiqueta PC. La expresión [(pos='.*PC.+'%c)] muestra todos los pronombres clíticos o enclíticos (se, vos, gelo, dixole o dixogelo).
Para encontrar solo los clíticos (nos, le, gelo) se puede utilizar la expresión [(pos='PC.+'%c)]. En el caso de los enclíticos existen dos posibilidades, la primera [(pos='.+PC.+'%c)\], muestra todos los enclíticos pegados a cualquier categoría gramatical (iot, dixogelo), mientras que la segunda, [(pos='V.+PC.+'%c)], solo muestra los que están pegados al verbo (dixogelo).
Para encontrar solo las agrupaciones de clíticos (& non sele oluidaran) se puede utilizar la expresión [(pos='PC.+#PC.+'%c)]. Finalmente, para encontrar las agrupaciones de enclíticos verbales (& comendogele sobre su fe), se usará la expresión [(pos='V.+PC.+#PC.+'%c)].
Para extraer todas las formas con pronombres enclíticos, de un verbo concreto (por ejemplo, escribir), basta con utilizar la siguiente expresión:
[(lemma='escribir#.*'%c)\] within text sort by yearobra
Para extraer todas las formas, con y sin pronombres enclíticos, de escribir, puede utilizarse la siguiente expresión:
[(lemma='escribir#.*'%c) | (lemma='escribir'%c)] within text sort by yearobra
Conviene notar que la primera parte de la expresión anterior (lemma=escribir#.*'%c) plantea problemas en verbos como dar y ser, que comparten secuencia inicial de letras con otros lemas: Dardona, Darío, dardo, serenar, serpiente, Sertorio, servir, etc. En estos casos es necesario utilizar la siguiente expresión:
[(lemma='ser#.*'%c) | (lemma='ser' & pos='V.+'%c)] within text sort by yearobra
Esta consulta permite encontrar las formas del lema ser necesariamente con pronombre enclítico o las formas con lema exactamente ser y que además sean verbales (es decir, necesariamente sin pronombres enclíticos y excluyendo otros lemas que empiezan con la misma secuencia de letras, como servir, u otras formas de ser, por ejemplo, como sustantivo).
extracción de colocaciones del tipo "sustantivo precedido por cualquier palabra excepto las de una categoría gramatical concreta".
En este caso se quieren extraer las colocaciones del sustantivo peso precedido por cualquier palabra excepto artículo. Para ello se puede utilizar una de estas dos expresiones para encontrar las formas del sustantivo:
[(word='pe[sσ]+o[sσ]?' & pos='NC.*'%c)] within text sort by yearobra[(lemma='peso')] within text sort by yearobra
Conviene señalar que los errores en la lematización y el etiquetado morfológico pueden generar discrepancias en los resultados de las búsquedas, con 2245 y 1950 ejemplos respectivamente.
Para eliminar todos aquellos casos en los que peso está precedido por un artículo, es preciso añadir la expresión [(pos!='DA.*'%c)\] a nuestra consulta:
[(pos!='DA.*'%c)] [(word='pe[sσ]+o[sσ]?' & pos='NC.*'%c)] within text sort by yearobra
de manera que OSTA busca combinaciones de dos palabras, donde la primera de ellas NO sea un artículo y la segunda sea peso SOLO cuando se trata de un nombre común. Sin embargo, esta búsqueda no excluye casos de formas aglutinadas del tipo: este libro del peso de las melezinas; afino conel peso y cantidad; vn poco de hilado al peso.
Para excluir los artículos y las formas aglutinadas con artículos se debe utilizar la siguiente búsqueda:
[(pos='.*'%c) &! (pos='DA.*'%c) &! (pos='SPS00#DA.*'%c)] [(word='pe[sσ]+o[sσ]?' & pos='NC.*'%c)\] within text sort by yearobra
en la que OSTA busca combinaciones de dos palabras, donde la primera de ellas tenga cualquier etiqueta morfológica, excepto artículo o la forma aglutinada preposición+artículo.
búsquedas por lengua (no principal) y formas desconocidas.
Las lenguas principales de OSTA son las siguientes:
- castellano
- castellano occidental
- asturiano
- leonés
- navarro
- navarro-aragonés
- aragonés
- riojano
y es posible filtrar y ordenar los resultados utilizando el filtro "Lengua principal".
Sin embargo, cuando un texto contiene pasajes escritos en una lengua que no sea ninguna de las lenguas principales, las palabras de estos pasajes tienen como lema la etiqueta de la lengua correspondiente. Según esto, la consulta
[(lemma='HEB'%c)] within text sort by yearobra
devuelve todas las palabras etiquetadas como hebreas, mientras que la consulta
[(word='a.*'%c) & (lemma='LAT'%c)] within text sort by yearobra
devuelve todas las palabras latinas que comienzan por a.
Además, todas las palabras de cualquier lengua no principal tienen asignada la misma etiqueta gramatical, LANG, por lo que la consulta
[(pos='LANG'%c)] within text sort by yearobra
devuelve todas las palabras en el corpus que no pertenecen a ninguna de las lenguas principales.
Existe en OSTA también un número reducido, pero significativo de palabras (menos de 250.000, aproximadamente 0.6% del total) que el etiquetador morfológico ha sido incapaz de identificar. Todas las palabras desconocidas tienen el lema UNK. Así, la consulta
[(word='.*ones'%c) & (lemma='UNK.*'%c)] within text sort by yearobra
devuelve todas las palabras desconocidas en el corpus que terminan en -ones.