Skip to content

Commit c0aaabc

Browse files
Merge branch 'release/5.25.0'
2 parents f7c5993 + 842c3bd commit c0aaabc

File tree

520 files changed

+8760
-5107
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

520 files changed

+8760
-5107
lines changed

.github/ISSUE_TEMPLATE/bug_report.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ body:
4747
attributes:
4848
label: Version
4949
description: |
50-
Please add information about the version of I-analyzer where you encountered the bug.
50+
Please add information about the version of Textcavator where you encountered the bug.
5151
You can find the version number (e.g. "1.2.3") in the footer of the site.
5252
validations:
5353
required: false

.vscode/launch.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,15 @@
3131
"django": true,
3232
"justMyCode": true
3333
},
34+
{
35+
"name": "django: loadcorpora",
36+
"type": "python",
37+
"request": "launch",
38+
"program": "${workspaceFolder}/backend/manage.py",
39+
"args": ["loadcorpora"],
40+
"django": true,
41+
"justMyCode": false
42+
},
3443
{
3544
"type": "chrome",
3645
"request": "launch",

CITATION.cff

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# Visit https://bit.ly/cffinit to generate yours today!
33

44
cff-version: 1.2.0
5-
title: I-Analyzer
5+
title: Textcavator
66
message: >-
77
If you use this software, please cite it using the
88
metadata from this file.
@@ -15,16 +15,16 @@ authors:
1515
identifiers:
1616
- type: doi
1717
value: 10.5281/zenodo.8064133
18-
repository-code: 'https://github.com/CentreForDigitalHumanities/I-analyzer'
19-
url: 'https://ianalyzer.hum.uu.nl'
18+
repository-code: 'https://github.com/CentreForDigitalHumanities/Textcavator'
19+
url: 'https://textcavator.hum.uu.nl'
2020
abstract: >-
21-
I-analyzer is a tool for exploring corpora (large
22-
collections of texts). You can use I-analyzer to find
21+
Textcavator is a tool for exploring corpora (large
22+
collections of texts). You can use Textcavator to find
2323
relevant documents, or to make visualisations to
2424
understand broader trends in the corpus. The interface is
2525
designed to be accessible for users of all skill levels.
2626
27-
I-analyzer is primarily intended for academic research and
27+
Textcavator is primarily intended for academic research and
2828
higher education. We focus on data that is relevant for
2929
the humanities, but we are open to datasets that are
3030
relevant for other fields.
@@ -35,5 +35,5 @@ keywords:
3535
- elasticsearch
3636
- natural language processing
3737
license: MIT
38-
version: 5.22.1
39-
date-released: '2025-09-03'
38+
version: 5.25.0
39+
date-released: '2025-12-08'

README.md

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,41 @@
1-
# I-analyzer
1+
# Textcavator
2+
3+
> [!NOTE]
4+
> We are currently in the process of renaming this application from I-analyzer to Textcavator.
25
36
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.8064133.svg)](https://doi.org/10.5281/zenodo.8064133)
4-
[![Actions Status](https://github.com/CentreForDigitalHumanities/I-analyzer/workflows/Unit%20tests/badge.svg)](https://github.com/CentreForDigitalHumanities/I-analyzer/actions)
7+
[![Backend unit tests](https://github.com/CentreForDigitalHumanities/Textcavator/actions/workflows/backend-test.yml/badge.svg)](https://github.com/CentreForDigitalHumanities/Textcavator/actions/workflows/backend-test.yml)
8+
[![Frontend unit tests](https://github.com/CentreForDigitalHumanities/Textcavator/actions/workflows/frontend-test.yml/badge.svg)](https://github.com/CentreForDigitalHumanities/Textcavator/actions/workflows/frontend-test.yml)
59

610
> "The great text mining tool that obviates all others."
711
> — Julian Gonggrijp
812
9-
I-analyzer is a web application for exploring corpora (large collections of texts). You can use I-analyzer to find relevant documents, or to make visualisations to understand broader trends in the corpus. The interface is designed to be accessible for users of all skill levels.
13+
Textcavator is a web application for exploring corpora (large collections of texts). You can use Textcavator to find relevant documents, or to make visualisations to understand broader trends in the corpus. The interface is designed to be accessible for users of all skill levels.
1014

11-
I-analyzer is primarily intended for academic research and higher education. We focus on data that is relevant for the humanities, but we are open to datasets that are relevant for other fields.
15+
Textcavator is primarily intended for academic research and higher education. We focus on data that is relevant for the humanities, but we are open to datasets that are relevant for other fields.
1216

1317
## Contents
1418

15-
This repository contains the source code for the I-analyzer web application, which consists of a Django backend and Angular frontend.
19+
This repository contains the source code for the Textcavator web application, which consists of a Django backend and Angular frontend.
1620

17-
For corpora included in I-analyzer, the backend includes a definition file that specifies how to read the source files, and how this data should be structured and presented in I-analyzer. This repository does _not_ include the source data itself, beyond a few sample files for testing.
21+
For corpora included in Textcavator, the backend includes a definition file that specifies how to read the source files, and how this data should be structured and presented in Textcavator. This repository does _not_ include the source data itself, beyond a few sample files for testing.
1822

1923
## Usage
2024

21-
If you are interested in using I-analyzer, the most straightforward way to get started is to visit [ianalyzer.hum.uu.nl](https://ianalyzer.hum.uu.nl/). This server is maintained by the Research Software Lab and contains corpora focused on a variety of fields. We also maintain more specialised collections at [PEACE portal](https://peace.sites.uu.nl/epigraphy/search/) and [People & Parliament](https://people-and-parliament.hum.uu.nl/).
25+
If you are interested in using Textcavator, the most straightforward way to get started is to visit [ianalyzer.hum.uu.nl](https://ianalyzer.hum.uu.nl/). This server is maintained by the Research Software Lab and contains corpora focused on a variety of fields. We also maintain more specialised collections at [PEACE portal](https://peace.sites.uu.nl/epigraphy/search/) and [People & Parliament](https://people-and-parliament.hum.uu.nl/).
2226

23-
I-analyzer does not have an "upload data" option (yet!). If you are interested in using I-analyzer as a way to publish your dataset, or to make it easier to search and analyse, you can go about this two ways:
27+
Textcavator does not have an "upload data" option (yet!). If you are interested in using Textcavator as a way to publish your dataset, or to make it easier to search and analyse, you can go about this two ways:
2428

2529
- Contact us (see below for details) about hosting your dataset on one of our existing servers, or hosting a new server for your project.
26-
- Self-host I-analyzer. This would allow you to maintain full control over the data and who can access it. I-analyzer is open source software, so you are free to host it yourself, either as-is or with your own modifications. However, feel free to contact us with any questions or issues.
30+
- Self-host Textcavator. This would allow you to maintain full control over the data and who can access it. Textcavator is open source software, so you are free to host it yourself, either as-is or with your own modifications. However, feel free to contact us with any questions or issues.
2731

2832
## Development
2933

30-
The [documentation directory](./documentation/) contains documentation for developers. This includes [installation instructions](./documentation/First-time-setup.md) to set up an I-analyzer server.
34+
The [documentation directory](./documentation/) contains documentation for developers. This includes [installation instructions](./documentation/First-time-setup.md) to set up an Textcavator server.
3135

3236
## Licence
3337

34-
The source code of I-analyzer is shared under an MIT licence. See [LICENSE](./LICENSE) for the full licence statement.
38+
The source code of Textcavator is shared under an MIT licence. See [LICENSE](./LICENSE) for the full licence statement.
3539

3640
### Images
3741

@@ -45,11 +49,11 @@ Some images currently lack a licence file. We are working on providing clear cop
4549

4650
If you wish to cite this repository, please use the metadata provided in our [CITATION.cff file](./CITATION.cff).
4751

48-
If you wish to cite material that you accessed through I-analyzer, or you are not sure if you should also be citing this repository, please refer to the [citation instructions in the user manual](./frontend/src/assets/manual/en-GB/citation.md).
52+
If you wish to cite material that you accessed through Textcavator, or you are not sure if you should also be citing this repository, please refer to the [citation instructions in the user manual](./frontend/src/assets/manual/en-GB/citation.md).
4953

5054
## Contact
5155

52-
For questions, small feature suggestions, and bug reports, feel free to [create an issue](https://github.com/CentreForDigitalHumanities/I-analyzer/issues/new/choose). If you don't have a Github account, you can also [contact the Centre for Digital Humanities](https://cdh.uu.nl/contact/).
56+
For questions, small feature suggestions, and bug reports, feel free to [create an issue](https://github.com/CentreForDigitalHumanities/Textcavator/issues/new/choose). If you don't have a Github account, you can also [contact the Centre for Digital Humanities](https://cdh.uu.nl/contact/).
5357

54-
If you want to add a new corpus to I-analyzer, or have an idea for a project, please [contact the Centre for Digital Humanities](https://cdh.uu.nl/contact/) rather than making an issue, so we can discuss the possibilities with you.
58+
If you want to add a new corpus to Textcavator, or have an idea for a project, please [contact the Centre for Digital Humanities](https://cdh.uu.nl/contact/) rather than making an issue, so we can discuss the possibilities with you.
5559

backend/Dockerfile.base

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Base image
2-
FROM docker.io/library/python:3.9 AS base
2+
FROM docker.io/library/python:3.12 AS base
33
# Setting this means stdout and stderr streams are sent to terminal in real time
44
ENV PYTHONUNBUFFERED 1
55
# Get required libraries for xmlsec

backend/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# I-analyzer backend
1+
# Textcavator backend
22

33
The text mining tool that obviates all others
44

backend/addcorpus/admin.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from django.contrib import admin, messages
22
from .models import Corpus, CorpusConfiguration, CorpusDataFile, Field, CorpusDocumentationPage
33

4+
45
def show_warning_message(request):
56
'''
67
Message to display when loading a form for a resource based on a python class
@@ -16,10 +17,11 @@ def show_warning_message(request):
1617

1718
class InlineDatafileAdmin(admin.StackedInline):
1819
model = CorpusDataFile
19-
fields = ['file', 'is_sample']
20+
fields = ['file', 'is_sample', 'confirmed']
2021
show_change_link = True,
2122
extra = 0
2223

24+
2325
class CorpusAdmin(admin.ModelAdmin):
2426
readonly_fields = [
2527
'configuration', 'ready_to_index', 'ready_to_publish', 'date_created',
@@ -32,6 +34,7 @@ class CorpusAdmin(admin.ModelAdmin):
3234
list_filter = ['groups', 'active']
3335
inlines = [InlineDatafileAdmin]
3436

37+
3538
class InlineFieldAdmin(admin.StackedInline):
3639
model = Field
3740
fields = ['display_name', 'description']
@@ -174,6 +177,7 @@ def get_form(self, request, obj=None, **kwargs):
174177
show_warning_message(request)
175178
return super().get_form(request, obj, **kwargs)
176179

180+
177181
admin.site.register(Corpus, CorpusAdmin)
178182
admin.site.register(CorpusConfiguration, CorpusConfigurationAdmin)
179183
admin.site.register(Field, FieldAdmin)

backend/addcorpus/apps.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,6 @@
44
class AddcorpusConfig(AppConfig):
55
default_auto_field = 'django.db.models.BigAutoField'
66
name = 'addcorpus'
7+
8+
def ready(self):
9+
import addcorpus.signals

backend/addcorpus/constants.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,22 @@
44
('parliament', 'Parliamentary debates'),
55
('periodical', 'Newspapers and other periodicals'),
66
('finance', 'Financial reports'),
7-
('ruling', 'Court rulings'),
8-
('review', 'Online reviews'),
7+
('ruling', 'Laws and rulings'),
8+
('review', 'Reviews and discussions'),
99
('inscription', 'Funerary inscriptions'),
1010
('oration', 'Orations'),
1111
('book', 'Books'),
12-
('informative', 'Informative'),
12+
('letter', 'Letters and life writing'),
13+
('poetry', 'Poetry and songs'),
14+
('social', 'Social media'),
15+
('other', 'Other'),
1316
]
1417
'''
1518
Types of data
1619
'''
1720

1821
class MappingType(Enum):
19-
'Elasticsearch mapping types that are implemented in I-analyzer'
22+
'Elasticsearch mapping types that are implemented in Textcavator'
2023

2124
TEXT = 'text'
2225
KEYWORD = 'keyword'

backend/addcorpus/documentation.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ def render_documentation_context(raw_template):
88
today = date.today()
99
context = Context({
1010
'frontend_url': settings.BASE_URL,
11+
'site_name': settings.SITE_NAME,
1112
'date': {
1213
'year': today.year,
1314
'month': today.strftime('%B'),

0 commit comments

Comments
 (0)