pelagios / recogito2 Goto Github PK
View Code? Open in Web Editor NEWSemantic Annotation Without the Pointy Brackets
License: Apache License 2.0
Semantic Annotation Without the Pointy Brackets
License: Apache License 2.0
The Place- and Annotation API controller methods need to be cleaned up.
Should we add support for ingesting URI correspondence lists into the gazetteer index? Since such close-/exactMatch pairs would not be linked to a gazetteer record, this would impact the data model. I.e. we'd need to either move up matches to the level of the place itself (could make sense in terms of query performance anyway?); or support matches at the place level and at the gazetteer record level in parallel.
Deleting a document from the DB currently doesn't remove its annotations from the index. Implement.
Change the three-dot dropdown icon on comments, to a nicer (three round dots) version.
Note: all icon customizations need to go into a custom 'Recogito' icon font
Add a comment/talk section for the entire document (cf. Communication between annotators forum topic).
In terms of UI, this can live at the same level as the other areas (annotation, map, stats, settings). In fact, it's icon can probably take the place of the current 'Sharing Options' icon; whereas sharing options can be rolled into general document settings.
Should we should have a more formal 'About' page for Recogito? Most information will be on the splash page anyway. But perhaps contact info, acknowledgements (such as Johan for the map & gazetteer, Tom for Pleiades) etc.?
The page header shows no. of annotations and contributing users. Presently, this gets populated on page load. Make this reflect the live status during editing.
As noted by Pau and Günther: we need a 'Hide Annotations' quick toggle to remove all annotations from the view.
Also relates to issue #35. Really mostly about this method in AnnotationService.
Drag a link (IIIF or CTS) to the document pane to trigger doc import.
The editor popup does not yet properly treat gazetteer mappings where the gazetteer record does not have a coordinate.
On the splash page, we link to our 'Terms and Conditions' (and say you're agreeing to them if you sign up). So now all we need to do is draft them...
There's quite a bit of overlap in the tests in the models.place
package (test data setup etc.), which makes them unnecessarily bulky. Needs refactoring.
editor.js is becoming fairly big. Refactoring needed.
What about documents consisting of multiple representations and/or a mix of text and images? E.g. an image with multiple layers (from multispectral imaging); or a manuscript of which there's a scan and a transcription from a Latin version, and a scan from a translation.
The assumption is that these could be either represented as one document with multiple parts (the multispectral image case), or as multiple documents (potentially with multiple parts - the manuscript case) for which annotation need to be linked (somehow).
Should this be modeled as a relation between annotations? Or as another type of annotation body? (Type HYPERLINK with a URI)? OA would probably model this as an additional annotation altogether, with two annotations as target. But that's probably more complicated as need be, and won't work well with ElasticSearch. Disadvantage (?) we won't know if its an internal link in the same doc or not, unless
we parse the URI.
Additional question: how do we realize that in the UI? (Multi-window environment? Parallel navigation? Would that work on tablets at all?)
It's currently not possible to delete Place (or Person) annotation bodies. Implement.
Like in Recogito v1. But make auto-matching work in cases where toponyms are followed by interpunctuation.
Design & implement the popup dialog for gazetteer search & changing geo-resolution. In general, there's a difference between:
There should be an indicator in the header that confirms if changes are saved, or displays an error message otherwise, similar to how it's done in GoogleDocs.
Suitable location for this would be next to the main navigation icons. (If space permits on narrow screen devices/tablets?) Otherwise somewhere in the sidebar?
By entity type (implemented now), by resolution status, by tag.
Add popup warnings for icons that represent functionality not yet implemented in Pre-release 1.
The upload wizard UI allows the user to re-order document parts via drag-and-drop. However, this information doesn't get sent to the server yet. Implement.
Shapes/selection should be movable (resizable) while in edit mode, after creation.
Implement sharing of documents, so that other people gain (write) access to a document.
Populate the 'Document Settings' area with basic functionality:
Implement basic map view page, just so we can see something. This task is a bigger chunk of work: to implement this in a scalable way, we need to have a way of retrieving all places for one document in one go. That means we first need to have the entire PlaceLink functionality implemented first.
Since some features won't be operational in the first pre-release, hide them in the UI toolbar, or make them appear as 'greyed out':
Implement basic data download functionality - line-delimited JSON first.
Draft 4 key messages for the splash page message tiles underneath the jumbotron.
Should we display a warning in text/image-annotation mode if a document has been under editing by a different user in the last X minute? We won’t be able to add Google-Drive-like live collaboration. This would at least a reasonable precaution to avoid interference between concurrent users.
The Pelagios gazetteer record model allows isPartOf relations between records. The ElasticSearch mapping for Place objects includes this as a property. But we're not making use of it.
Question: how should we deal with this information (and the fact that different gazetteers will report incoherent hierarchy relations)?
At the moment, the NER process just runs Stanford NLP over the uploaded text(s), but geo-resolving the place entities against the gazetteer index is not implemented yet.
Implement first functional version of custom vocabulary tagging functionality into the text annotation popup.
Implement annotation versioning. Version history probably just needs to keep a record of all previous versions of an annotation. The modified annotation is stored as a serialized (non-indexed?) JSON string.
For search/restore, all we need to know is who created each version, and when. Scenarios we aim to cover are:
Currently, the quick mode for tagging as Person is implemented - but the editor popup does not have a dedicated 'Person' section yet. Likewise, marking a selection as person in the editor popup does not have any functionality yet.
Implement at least placeholder functionality, so that it's at least consistently possible to mark a selection as Person, even if there's no resolution to authority URI yet.
Currently, the editor popup always opens at bottom left of the selection. Make the popup sensitive to available screenspace, so that it doesn't open outside the visible viewport. In addition to the bottom-left configuration, we also need:
Create base style for personal document space at http//recogito.pelagios.org/{my-username}
This page should serve as personal landing page along the lines of the GitHub personal site, include an overview of your own (and your collaborators') activity etc.
Note to self: current design is missing "create new folder" functionality.
What about comments on a specific body of an annotation? This related directly to the use case by Damien Bove, who wants to add notes to specific transcription bodies ("Transcription according to...").
In terms of the data model, I added a "note" string field to the body section in the annotation schema mapping. Is this enough? How should we treat that in the UI?
Add option to register an IIIF image in the document import wizard. We'll support registering an image, through the Image Information URL. To display the image we'll use the KlokanTech IIIFViewer as drop-in replacement for OpenLayers 3. The rest of the setup should remain compatible with what we have.
The version upgrade to Play 2.5 introduced a number of deprecation warnings. These need to be fixed.
General issue for all ElasticSearch requests: add sanity checks where necessary. E.g. if a boolean query is built from a list of search terms (or URIs), check if the size of the list does not exceed some sort maximum boundary allowed for ElasticSearch boolean clauses, in order to make sure that weird gazetteer records don't break the import.
Note: this is probably most relevant in the PlaceStore
Implement PlaceLink rewriting after gazetteer updates. Use optimistic locking.
The upgrade to ElasticSearch v2.3.0 seems to have broken the service integration tests. (The embedded ElasticSearch node shuts down right after starting). This used to work fine - investigate and fix!
The sticky toolbar is pushed outside the screen when the page is scrolled down and reloaded. (I.e. page loads with a scrollTop > 147). Fix.
Integrate annotation of TEI/XML content via CETEIcean.
Should we enable people to upload their own gazetteers, for exclusive use within their documents? This could be an interesting feature, but has significant architectural repercussions. How would we model it in ElasticSearch? A separate index for user gazetteers (with and "owner" field on each place) and multi-index query (to cover "standard" and custom gazetteers)? Additionally: no conflation with the standard gazetteers?
When the user clicks 'OK' in the editor popup, the annotation is unnecessarily updated in the DB. Check for changes and update only if there are any.
Display of geo-resolution status is not yet implemented in the annotation editor place section.
Q: do we want directly visible "completion stats" in the personal index page, along the lines of Recogito 1?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.