Standards‐Status and Future Plans - bounswe/bounswe2024group10 GitHub Wiki

Introduction

Chosen Standard: W3C Web Annotation Data Model

The W3C Web Annotation Data Model is a robust standard developed by the World Wide Web Consortium (W3C) to enable users to annotate web content in a structured and interoperable manner. It allows users to add comments, highlights, tags, and references to specific parts of a webpage, which can then be shared, stored, and displayed across different platforms. We have undertaken the task of implementing this model into our software, creating an interface that supports user-generated annotations. This document provides an overview of our progress, our adherence to standards, and our future plans for implementation.

This system will be used in our finance application "Tradeverse", where users can share and view posts, manage asset portfolios, and perform searches on companies, assets, and other financial data. Annotations will play a key role in helping users track insights, share knowledge, and collaborate more effectively in this financial domain.

Current Status

0. Understanding the Standard

After choosing this standard as a team, with advice from one of our TAs (Kutay hoca), we conducted further research into the Web Annotation Data Model. Accordingly, we have documented our findings, which can be accessed here. This documentation explains the purpose of the Web Annotation Data Model, its benefits, and provides the basics of its implementation.

It should be emphasized that the implementation of this standard will be independent of our core application to maintain compliance with the principles of the standard.

1. Implementation Plan

  • Annotation Structure: Each annotation will consist of the following primary fields:

    • id: Unique identifier for each annotation.
    • type: Set to "Annotation" to specify the data type.
    • body: The content of the annotation (e.g., text, comment, or external reference).
    • target: The specific part of the document the annotation applies to (e.g., a URL or text snippet).
  • Standardized Fields: Annotations will be stored in JSON format, with each annotation containing standardized fields such as:

    • @context: Defines the context in which the annotation is being made.
    • created and modified: Timestamps to track annotation creation and modifications.
    • creator: Information about who created the annotation.
    • motivation: Describes the purpose of the annotation (e.g., "commenting", "highlighting").

We are ensuring that all annotations follow the proper structure as defined by the W3C specification to maintain interoperability and compatibility across different systems.

2. Front-End Development

For the front-end, we have defined the following components to handle annotations in the context of our finance application:

  • User Interface (UI): The interface for creating, editing, and displaying annotations is under development. It will consist of:

    • An Annotation Button that allows users to select text (such as stock prices, financial metrics, or company names) and annotate it.
    • A Sidebar or Pop-up to display existing annotations for selected content, such as market reports, asset details, or financial news.
  • JavaScript Library Integration: We are evaluating a suitable JavaScript library to handle annotation interactions. This will provide functionality like capturing selected text (e.g., a financial term, asset, or news article), displaying annotations, and saving data to storage.

  • Annotation Interaction: The JavaScript functions will handle key user actions:

    • Capture Selected Text: When a user selects text related to a stock price, company performance, or market event, we capture its position and content.
    • Open Annotation Form: Upon selection, an annotation form will open for users to add financial insights, comments, or external links to relevant financial data (e.g., a link to a company's quarterly earnings report).
    • Save Annotation: Annotations will be saved in a structured JSON format, which can then be retrieved and displayed later.
    • Display Annotations: Annotations will be displayed dynamically alongside related financial content such as stock charts, asset portfolios, and company reports.

3. Back-End Development

Our back-end system will manage annotation data related to financial content using the following structure:

  • Database and Storage: Annotations will be stored in a database, leveraging JSON files for structured storage. This ensures that the data remains easily queryable, updatable, and portable across systems.

  • API Endpoints: RESTful API endpoints will be developed to handle Create, Read, Update, and Delete (CRUD) operations on annotations. These operations will enable users to manage their annotations effectively, whether on specific stocks, asset performance, or financial articles.

  • Annotation Data Retrieval: The system will dynamically load annotations associated with financial data (e.g., market updates, company profiles) when users access the page. This will allow for real-time updates and access to user-generated insights.

Future Plans and Implementation Roadmap

1. Cross-Platform Compatibility

To ensure that our annotation system is usable across various devices and platforms, we will focus on the following:

  • Responsive Design: The annotation UI will be fully responsive, ensuring proper functionality on both desktop and mobile devices. This is crucial for financial applications where users often access data on the go.

  • Cross-Browser Testing: We will conduct rigorous cross-browser testing to ensure compatibility with all major browsers (Chrome, Firefox, Safari, Edge) to provide a consistent experience for users.

2. Interoperability with Other Systems

Given the nature of financial data, interoperability is critical. The following steps are planned:

  • Exporting Annotations: We will implement features to export annotations in various formats (such as RDF, JSON-LD) to facilitate sharing and integration with other tools, platforms, or even regulatory bodies, which may require reporting of financial analysis or insights.

3. Testing and Debugging

A comprehensive testing and debugging process will be implemented to ensure the robustness of the annotation system:

  • Unit and Integration Tests: Automated tests will be created for both the front-end and back-end components to verify the functionality of the annotation system.

4. Security Considerations

As we handle sensitive financial data, ensuring data integrity and user privacy is paramount. To address this:

  • Data Validation: We will implement stringent data validation to prevent malicious input and ensure that annotations are appropriately formatted.

  • Authentication and Authorization: The annotation system will use strong authentication mechanisms to ensure that only authorized users can create, update, or delete annotations, especially in sensitive financial contexts. Annotations might also have different access levels based on user roles (e.g., analysts, portfolio managers, and clients).

5. Domain-Specific Features

To further tailor the annotation system to the finance domain, we are considering the following domain-specific feature:

  • Post Annotations: Users will also have the ability to annotate posts within the application, such as news articles, financial analysis, or market updates. These annotations could include comments, questions, or links to additional resources that provide further context or analysis. For instance, a user might annotate a news article about a company’s merger announcement with an analysis of how the merger will affect the stock price or offer a link to a previous post or report that provides further background. This feature will foster collaboration and discussion around financial news and insights, enabling users to contribute their perspectives and share valuable information.

Conclusion

We have made substantial progress in implementing the W3C Web Annotation Data Model into our finance application. Our current focus is on understanding the standard, integrating front-end and back-end components, and ensuring adherence to the model’s standards. Our roadmap includes cross-platform compatibility, interoperability with other systems, and domain-specific features like asset-specific annotations and post annotation.

By following this plan, we aim to create a comprehensive and flexible annotation system that supports the diverse needs of users within the finance sector. Our annotation system will provide a powerful tool for content annotation, collaboration, and enhanced financial analysis in our application.