Skip to content

Commit b1d21ce

Browse files
authored
Merge pull request #172 from nlpsandbox/release-1.0.0-v2
Release 1.0.0
2 parents 8598d98 + c7a4b49 commit b1d21ce

File tree

18 files changed

+316
-79
lines changed

18 files changed

+316
-79
lines changed

CODE_OF_CONDUCT.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# Code of Conduct
2+
3+
## Our Pledge
4+
5+
In the interest of fostering an open and welcoming environment, we as
6+
contributors and maintainers pledge to making participation in our project and
7+
our community a harassment-free experience for everyone, regardless of age, body
8+
size, disability, ethnicity, sex characteristics, gender identity and
9+
expression, level of experience, education, socio-economic status, nationality,
10+
personal appearance, race, religion, or sexual identity and orientation.
11+
12+
## Our Standards
13+
14+
Examples of behavior that contributes to creating a positive environment
15+
include:
16+
17+
- Using welcoming and inclusive language
18+
- Being respectful of differing viewpoints and experiences
19+
- Gracefully accepting constructive criticism
20+
- Focusing on what is best for the community
21+
- Showing empathy towards other community members
22+
23+
Examples of unacceptable behavior by participants include:
24+
25+
- The use of sexualized language or imagery and unwelcome sexual attention or
26+
advances
27+
- Trolling, insulting/derogatory comments, and personal or political attacks
28+
- Public or private harassment
29+
- Publishing others' private information, such as a physical or electronic
30+
address, without explicit permission
31+
- Other conduct which could reasonably be considered inappropriate in a
32+
professional setting
33+
34+
## Our Responsibilities
35+
36+
Project maintainers are responsible for clarifying the standards of acceptable
37+
behavior and are expected to take appropriate and fair corrective action in
38+
response to any instances of unacceptable behavior.
39+
40+
Project maintainers have the right and responsibility to remove, edit, or reject
41+
comments, commits, code, wiki edits, issues, and other contributions that are
42+
not aligned to this Code of Conduct, or to ban temporarily or permanently any
43+
contributor for other behaviors that they deem inappropriate, threatening,
44+
offensive, or harmful.
45+
46+
## Scope
47+
48+
This Code of Conduct applies both within project spaces and in public spaces
49+
when an individual is representing the project or its community. Examples of
50+
representing a project or community include using an official project e-mail
51+
address, posting via an official social media account, or acting as an appointed
52+
representative at an online or offline event. Representation of a project may be
53+
further defined and clarified by project maintainers.
54+
55+
## Enforcement
56+
57+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
58+
reported by contacting the contacting the project lead or Sage Privacy Officer
59+
(privacyofficer@sagebase.org). The project team will review and investigate all
60+
complaints, and will respond in a way that it deems appropriate to the
61+
circumstances. The project team is obligated to maintain confidentiality with
62+
regard to the reporter of an incident. Further details of specific enforcement
63+
policies may be posted separately.
64+
65+
Project maintainers who do not follow or enforce the Code of Conduct in good
66+
faith may face temporary or permanent repercussions as determined by other
67+
members of the project's leadership.
68+
69+
## Attribution
70+
71+
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
72+
version 1.4, available at
73+
https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
74+
75+
<!-- Links -->
76+
77+
[homepage]: https://www.contributor-covenant.org

CONTRIBUTING.md

Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
## Contributing
2+
3+
A big welcome and thank you for considering contributing to this project.
4+
5+
This project is a community effort and lives off your contributions, be it in
6+
the form of bug reports, feature requests, discussions, or fixes and other
7+
code changes.
8+
9+
Reading and following these guidelines will help us make the contribution
10+
process easy and effective for everyone involved. It also communicates that you
11+
agree to respect the time of the developers managing and developing these open
12+
source projects. In return, we will reciprocate that respect by addressing your
13+
issue, assessing changes, and helping you finalize your pull requests.
14+
15+
## Quicklinks
16+
17+
- [Code of Conduct](#code-of-conduct)
18+
- [Getting Started](#getting-started)
19+
- [Issues](#issues)
20+
- [Pull Requests](#pull-requests)
21+
- [Setup Development Environment](#setup-development-environment)
22+
- [HTML Preview](#html-preview)
23+
- [Testing](#testing)
24+
- [Release Procedure](#release-procedure)
25+
- [Getting Help](#getting-help)
26+
27+
## Code of Conduct
28+
29+
We take our open source community seriously and hold ourselves and other
30+
contributors to high standards of communication. By participating and
31+
contributing to this project, you agree to uphold our [Code of Conduct].
32+
33+
## Getting Started
34+
35+
Contributions are made to this repo via Issues and Pull Requests (PRs). A few
36+
general guidelines that cover both:
37+
38+
- Search for existing Issues and PRs before creating your own.
39+
- We work hard to makes sure issues are handled in a timely manner but,
40+
depending on the impact, it could take a while to investigate the root cause.
41+
A friendly ping in the comment thread to the submitter or a contributor can
42+
help draw attention if your issue is blocking.
43+
44+
### Issues
45+
46+
Issues should be used to report problems with this project, request a new
47+
feature, or to discuss potential changes before a PR is created. When you
48+
create a new Issue, a template will be loaded that will guide you through
49+
collecting and providing the information we need to investigate.
50+
51+
If you find an Issue that addresses the problem you're having, please add your
52+
own reproduction information to the existing issue rather than creating a new
53+
one. Adding a [reaction] can also help be indicating to our maintainers that a
54+
particular problem is affecting more than just the reporter.
55+
56+
### Pull Requests
57+
58+
PRs to our repositories are always welcome and can be a quick way to get your
59+
fix or improvement slated for the next release. In general, PRs should:
60+
61+
- Only fix/add the functionality in question **OR** address wide-spread
62+
whitespace/style issues, not both.
63+
- Add unit or integration tests for fixed or changed functionality
64+
(if a test suite already exists).
65+
- Address a single concern in the least number of changed lines as possible.
66+
- Include documentation in the repo or on our [docs site].
67+
- Be accompanied by a complete Pull Request template (loaded automatically
68+
when a PR is created).
69+
70+
For changes that address core functionality or would require breaking changes
71+
(e.g. a major release), it's best to open an Issue to discuss your proposal
72+
first. This is not required but can save time creating and reviewing changes.
73+
74+
In general, we follow the [Forking Workflow]:
75+
76+
1. Fork the repository to your own Github account
77+
2. Clone the project to your machine
78+
3. Create a branch locally with a succinct but descriptive name
79+
4. Commit changes to the branch
80+
5. Following any formatting and testing guidelines specific to this repo
81+
6. Push changes to your fork
82+
7. Open a PR in our repository and follow the PR template so that we can
83+
efficiently review the changes.
84+
85+
We recommend that you add this repository as an [upstream remote] to your local
86+
git repository so that you can fetch the latest updates.
87+
88+
On your local machine make sure you have the latest version of the `develop`
89+
branch from this upstream repository:
90+
91+
git checkout develop
92+
git pull upstream develop
93+
94+
### Setup Development Environment
95+
96+
This project relies on Node tools and project-specific commands defined in
97+
[package.json] to streamline the development and testing. The command below will
98+
install the required development tools.
99+
100+
npm ci
101+
102+
### HTML Preview
103+
104+
The command below builds and serves a preview of the HTML documentation of one
105+
of the APIs defined in this repository:
106+
107+
npm run start --api=<name>
108+
109+
where `<name>` is the name of one of the API folders included in
110+
[openapi/](openapi/) for which you want to see the HTML documentation. The HTML
111+
page will be available at http://localhost:8080.
112+
113+
### Testing
114+
115+
Before submitting a PR, please check that the content of the branch that you
116+
plan to submit passes with the tests defined for this project:
117+
118+
npm run lint:all
119+
npm run validate --api=<name>
120+
121+
where `<name>` is the name of the API folder in [openapi/](openapi/) that you
122+
want to test.
123+
124+
## Release Procedure
125+
126+
Maintainers are required to follow the procedure below when creating a new
127+
release.
128+
129+
TBA
130+
131+
## Getting Help
132+
133+
Join us on the [NLP Sandbox Discord server] and post your question to the
134+
channel that best matches the topic of your request.
135+
136+
<!-- Links -->
137+
138+
[Code of Conduct]: https://github.com/auth0/open-source-template/blob/master/CODE-OF-CONDUCT.md
139+
[upstream remote]: https://help.github.com/en/articles/configuring-a-remote-for-a-fork
140+
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
141+
[docs site]: https://github.com/nlpsandbox/nlpsandbox-website-synapse
142+
[Forking Workflow]: https://www.atlassian.com/git/tutorials/comparing-workflows/forking-workflow
143+
[package.json]: package.json
144+
[NLP Sandbox Discord server]: https://discord.gg/Zb4ymtF

README.md

Lines changed: 52 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -5,71 +5,75 @@
55
[![GitHub License](https://img.shields.io/github/license/nlpsandbox/nlpsandbox-schemas.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/nlpsandbox/nlpsandbox-schemas)
66
[![Discord](https://img.shields.io/discord/770484164393828373.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://discord.gg/Zb4ymtF "Realtime support / chat with the community and the team")
77

8-
## OpenAPI specifications
8+
OpenAPI specifications of the NLP Sandbox services
99

10-
List of APIs defined by the NLP Sandbox sorted by type and name in alphabetic
11-
order.
10+
## Overview
1211

13-
| API | Type | Version |
14-
|---|---|---|
15-
| [Data Node](/openapi/data-node) | | 1.0.0 |
16-
| [Date Annotator](/openapi/date-annotator) | `nlpsandbox:date-annotator` | 1.0.0 |
17-
| [Person Name Annotator](/openapi/person-name-annotator) | `nlpsandbox:person-name-annotator` | 1.0.0 |
18-
| [Physical Address Annotator](/openapi/physical-address-annotator) | `nlpsandbox:physical-address-annotator` | 1.0.0 |
19-
| [PHI Deidentifier](/openapi/phi-deidentifier) | `nlpsandbox:phi-deidentifier` | 1.0.0 |
12+
This repository contains the OpenAPI specifications of the NLP tools and
13+
services defined by the NLP Sandbox. The NLP Tools that implement these
14+
specifications can have their performance benchmark on [nlpsandbox.io].
2015

21-
## Web services
16+
## NLP Tools
2217

23-
You can find below example implementations of the APIs defined by the NLP Sandbox.
18+
The OpenAPI specifications of the NLP Tools defined by the NLP Sandbox (and
19+
counting) are listed below. The OpenAPI specification available in JSON and YAML
20+
formats can be used to generate an NLP Tool "stub" using the [OpenAPI
21+
Generator]. For more information on how to develop an NLP Tool, please refer to
22+
the examples listed below. For more information on how to benchmark the
23+
performance of your tool, please visit [nlpsandbox.io].
2424

25-
| GitHub repository | API |
26-
|---|---|
27-
| [nlpsandbox/data-node](https://github.com/nlpsandbox/data-node) | Data Node |
28-
| [nlpsandbox/date-annotator-example](https://github.com/nlpsandbox/date-annotator-example) | Date Annotator |
29-
| [nlpsandbox/person-name-annotator-example](https://github.com/nlpsandbox/person-name-annotator-example) | Person Name Annotator |
30-
| [nlpsandbox/physical-address-annotator-example](https://github.com/nlpsandbox/physical-address-annotator-example) | Physical Address Annotator |
31-
| [nlpsandbox/phi-deidentifier](https://github.com/nlpsandbox/phi-deidentifier) | PHI Deidentifier |
25+
API Name | Type | Version
26+
-----------------------------|-----------------------------------------|---
27+
[Date Annotator] | `nlpsandbox:date-annotator` | 1.0.0
28+
[Person Name Annotator] | `nlpsandbox:person-name-annotator` | 1.0.0
29+
[Physical Address Annotator] | `nlpsandbox:physical-address-annotator` | 1.0.0
30+
[PHI Deidentifier] | `nlpsandbox:phi-deidentifier` | 1.0.0
3231

33-
## Development
32+
## Examples
3433

35-
### Install
34+
These repositories provide the source code of examples for each NLP Tools
35+
defined by the NLP Sandbox. These repositories have a CI/CD workflow that
36+
automatically tests the tool, and build and publish a Docker image that can then
37+
be submitted as-is to the [nlpsandbox.io], if you wish to benchmark its
38+
performance -- just don't expect a high performance!
3639

37-
1. Install [Node JS](https://nodejs.org/).
38-
2. Clone this repo and run `npm install` in the repo root.
40+
GitHub repository | Language
41+
------------------------------------------------|----------
42+
[nlpsandbox/date-annotator-example] | Python
43+
[nlpsandbox/date-annotator-example-java] | Java
44+
[nlpsandbox/person-name-annotator-example] | Python
45+
[nlpsandbox/physical-address-annotator-example] | Python
46+
[nlpsandbox/phi-deidentifier] | Python
3947

40-
### Usage
48+
## Docker images
4149

42-
Lint one OpenAPI specification, for example
50+
You can pull the images published by the NLP Sandbox from [Docker Hub].
4351

44-
npm run lint:ibm --entrypoint=openapi/date-annotator/openapi.yaml
45-
npm run lint:ibm --entrypoint=openapi/person-name-annotator/openapi.yaml
46-
npm run lint:ibm --entrypoint=openapi/physical-address-annotator/openapi.yaml
47-
npm run lint:ibm --entrypoint=openapi/data-node/openapi.yaml
48-
npm run lint:ibm --entrypoint=openapi/phi-deidentifier/openapi.yaml
52+
## Contributing
4953

50-
Build a bundled API file for one of the specifications:
54+
Thinking about contributing to this project? Get started by reading our
55+
[Contributor Guide](CONTRIBUTING.md).
5156

52-
npm run build openapi/date-annotator/openapi.yaml
53-
npm run build openapi/person-name-annotator/openapi.yaml
54-
npm run build openapi/physical-address-annotator/openapi.yaml
55-
npm run build openapi/data-node/openapi.yaml
56-
npm run build openapi/phi-deidentifier/openapi.yaml
57+
## License
5758

58-
You can then preview the OpenAPI docs in your browser: http://localhost:8080
59+
[Apache License 2.0]
5960

60-
## Contribution guidelines
61+
<!-- Links -->
6162

62-
TBA
63+
[nlpsandbox.io]: https://nlpsandbox.io
64+
[Date Annotator]: https://nlpsandbox.github.io/nlpsandbox-schemas/date-annotator/latest/docs/
65+
[Person Name Annotator]: https://nlpsandbox.github.io/nlpsandbox-schemas/person-name-annotator/latest/docs/
66+
[Physical Address Annotator]: https://nlpsandbox.github.io/nlpsandbox-schemas/physical-address-annotator/latest/docs/
67+
[PHI Deidentifier]: https://nlpsandbox.github.io/nlpsandbox-schemas/phi-deidentifier/latest/docs/
6368

64-
- List paths in alphanumerical order
65-
- Add schemas and paths used in more than one API to `commons`
69+
[OpenAPI Generator]: https://github.com/OpenAPITools/openapi-generator
6670

67-
## TODO
71+
[nlpsandbox/date-annotator-example]: https://github.com/nlpsandbox/date-annotator-example
72+
[nlpsandbox/date-annotator-example-java]: https://github.com/nlpsandbox/date-annotator-example-java
73+
[nlpsandbox/person-name-annotator-example]: https://github.com/nlpsandbox/person-name-annotator-example
74+
[nlpsandbox/physical-address-annotator-example]: https://github.com/nlpsandbox/physical-address-annotator-example
75+
[nlpsandbox/phi-deidentifier]: https://github.com/nlpsandbox/phi-deidentifier
6876

69-
> "description": "Creates a new Annotation record. It is valid to create Annotation objects for the same source more than once since a unique ID is assigned to each record by this service.",
77+
[Docker Hub]: https://hub.docker.com/u/nlpsandbox
7078

71-
<!-- Definitions -->
72-
73-
[data_node_yaml]: https://nlpsandbox.github.io//nlpsandbox-schemas/data-node/develop/openapi.yaml
74-
[data_node_json]: https://nlpsandbox.github.io//nlpsandbox-schemas/data-node/develop/openapi.json
75-
[data_node_html]: https://nlpsandbox.github.io//nlpsandbox-schemas/data-node/develop/docs/index.html
79+
[Apache License 2.0]: https://github.com/nlpsandbox/date-annotator-example/blob/develop/LICENSE

openapi/commons/components/schemas/ResponsePageMetadata.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ properties:
1414
type: string
1515
format: uri
1616
totalResults:
17-
description: Total number of results in the result set
17+
description: The total number of results in the result set
1818
type: integer
1919
required:
2020
- links

openapi/data-node/openapi.yaml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,18 @@ info:
1111
url: https://github.com/nlpsandbox/nlpsandbox-schemas/blob/develop/LICENSE
1212
x-logo:
1313
url: https://nlpsandbox.github.io/nlpsandbox-schemas/logo.png
14-
description: >
14+
description: |
1515
# Overview
1616
1717
The NLP Sandbox Data Node is a repository of data used to benchmark NLP
18-
Tools like the NLP Sandbox Date Annotator and Person Name Annotator. The
19-
resources that can be stored in this Data Node and the operations supported
20-
are listed below:
18+
Tools like the NLP Sandbox Date Annotator and Person Name Annotator.
2119
22-
- Create and manage datasets
23-
- Create and manage FHIR stores
24-
- Store and retrieve FHIR patient profiles
25-
- Store and retrieve clinical notes
20+
The resources that can be stored in this Data Node and the operations
21+
supported are listed below:
22+
23+
- Create and manage datasets - Create and manage FHIR stores
24+
- Store and retrieve FHIR patient profiles - Store and retrieve clinical
25+
notes
2626
- Create and manage annotation stores
2727
- Store and retrieve text annotations
2828
tags:

openapi/date-annotator/components/schemas/TextDateAnnotationRequest.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
type: object
2-
description: An annotation request
2+
description: A request to annotate dates in a clinical note
33
properties:
44
note:
55
$ref: ../../../commons/components/schemas/Note.yaml

0 commit comments

Comments
 (0)