Skip to content

Commit d62eaf8

Browse files
committed
Merge branch 'master' into rlpnc-7520-support-fielded-dates-through-record-similarity
2 parents bc98df1 + 85ae427 commit d62eaf8

23 files changed

Lines changed: 452 additions & 88 deletions

File tree

README.md

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
1-
<a href="https://www.babelstreet.com/rosette"><img src="https://s3.amazonaws.com/styleguide.basistech.com/logos/rosette-logo.png" width="181" height="47" /></a>
1+
<a href="https://www.babelstreet.com/rosette"><img src="https://charts.babelstreet.com/icon.png" width="47" height="60"/></a>
2+
# Rosette by Babel Street
23

34
---
45

56
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.basistech.rosette/rosette-api/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.basistech.rosette/rosette-api-java-binding)
67

7-
## Rosette API
8-
The Rosette Text Analytics Platform uses natural language processing, statistical modeling, and machine learning to
9-
analyze unstructured and semi-structured text across 364 language-encoding-script combinations, revealing valuable
10-
information and actionable data. Rosette provides endpoints for extracting entities and relationships, translating and
11-
comparing the similarity of names, categorizing and adding linguistic tags to text and more.
8+
Rosette uses natural language processing, statistical modeling, and machine learning to analyze unstructured and semi-structured text across hundreds of language-script combinations, revealing valuable information and actionable data. Rosette provides endpoints for extracting entities and relationships, translating and comparing the similarity of names, categorizing and adding linguistic tags to text and more. Rosette Server is the on-premises installation of Rosette, with access to Rosette's functions as RESTful web service endpoints. This solves cloud security worries and allows customization (models/indexes) as needed for your business.
9+
1210

1311
## Rosette API Access
1412
- Rosette Cloud [Sign Up](https://developer.rosette.com/signup)
@@ -36,11 +34,10 @@ View small example programs for each Rosette endpoint in the
3634

3735
#### Documentation & Support
3836
- [Binding API](https://rosette-api.github.io/java/)
39-
- [Rosette Platform API](https://developer.rosette.com/features-and-functions)
37+
- [Rosette Platform API](https://docs.babelstreet.com/API/en/index-en.html)
4038
- [Binding Release Notes](https://github.com/rosette-api/java/wiki/Release-Notes)
41-
- [Rosette Platform Release Notes](https://support.rosette.com/hc/en-us/articles/360018354971-Release-Notes)
42-
- [Binding/Rosette Platform Compatibility](https://developer.rosette.com/features-and-functions?java#)
43-
- [Support](https://support.rosette.com)
39+
- [Rosette Platform Release Notes](https://babelstreet.my.site.com/support/s/article/Rosette-Cloud-Release-Notes)
40+
- [Support](https://babelstreet.my.site.com/support/s/)
4441
- [Binding License: Apache 2.0](LICENSE.txt)
4542

4643
## Binding Developer Information

annotations/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<parent>
2020
<groupId>com.basistech.rosette</groupId>
2121
<artifactId>rosette-api-java-binding</artifactId>
22-
<version>1.29.101-SNAPSHOT</version>
22+
<version>1.29.1-SNAPSHOT</version>
2323
</parent>
2424
<artifactId>rosette-api-annotations</artifactId>
2525
<name>rosette-api-annotations</name>

api/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<parent>
2020
<groupId>com.basistech.rosette</groupId>
2121
<artifactId>rosette-api-java-binding</artifactId>
22-
<version>1.29.101-SNAPSHOT</version>
22+
<version>1.29.1-SNAPSHOT</version>
2323
</parent>
2424
<artifactId>rosette-api</artifactId>
2525
<name>rosette-api</name>

common/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<parent>
2020
<groupId>com.basistech.rosette</groupId>
2121
<artifactId>rosette-api-java-binding</artifactId>
22-
<version>1.29.101-SNAPSHOT</version>
22+
<version>1.29.1-SNAPSHOT</version>
2323
</parent>
2424
<artifactId>rosette-api-common</artifactId>
2525
<name>rosette-api-common</name>

examples/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<parent>
2121
<groupId>com.basistech.rosette</groupId>
2222
<artifactId>rosette-api-java-binding</artifactId>
23-
<version>1.29.101-SNAPSHOT</version>
23+
<version>1.29.1-SNAPSHOT</version>
2424
</parent>
2525
<groupId>com.basistech.rosette</groupId>
2626
<artifactId>rosette-api-examples</artifactId>

examples/src/main/java/com/basistech/rosette/examples/RecordSimilarityExample.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ private void run() throws IOException {
9090
primaryNameField, NameField.UnfieldedName.builder().text("Ivan R").build(),
9191
dobField, DateField.FieldedDate.builder().date(dobHyphen).build(),
9292
dob2Field, DateField.FieldedDate.builder().date("1993/04/16").build(),
93-
addrField, AddressField.FieldedAddress.builder().address("123 Roadlane Ave").build()
93+
addrField, AddressField.FieldedAddress.builder().houseNumber("123").road("Roadlane Ave").build()
9494
)
9595
)
9696
).build()

json/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<parent>
2121
<groupId>com.basistech.rosette</groupId>
2222
<artifactId>rosette-api-java-binding</artifactId>
23-
<version>1.29.101-SNAPSHOT</version>
23+
<version>1.29.1-SNAPSHOT</version>
2424
</parent>
2525
<artifactId>rosette-api-json</artifactId>
2626
<name>rosette-api-json</name>

json/src/main/java/com/basistech/rosette/apimodel/jackson/ApiModelMixinModule.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727
import com.basistech.rosette.apimodel.jackson.recordsimilaritydeserializers.AddressFieldDeserializer;
2828
import com.basistech.rosette.apimodel.jackson.recordsimilaritydeserializers.DateFieldDeserializer;
2929
import com.basistech.rosette.apimodel.jackson.recordsimilaritydeserializers.NameFieldDeserializer;
30-
import com.basistech.rosette.apimodel.recordsimilarity.RecordSimilarityResult;
31-
import com.basistech.rosette.apimodel.jackson.recordsimilaritydeserializers.RecordSimilarityResultDeserializer;
30+
import com.basistech.rosette.apimodel.jackson.recordsimilaritydeserializers.RecordSimilarityResponseDeserializer;
31+
import com.basistech.rosette.apimodel.recordsimilarity.RecordSimilarityResponse;
3232
import com.basistech.rosette.apimodel.recordsimilarity.records.AddressField;
3333
import com.basistech.rosette.apimodel.recordsimilarity.records.DateField;
3434
import com.basistech.rosette.apimodel.recordsimilarity.records.NameField;
@@ -98,7 +98,7 @@ public void setupModule(Module.SetupContext context) {
9898
deserializers.addDeserializer(DateField.class, new DateFieldDeserializer());
9999
deserializers.addDeserializer(AddressField.class, new AddressFieldDeserializer());
100100
deserializers.addDeserializer(RecordSimilarityRequest.class, new RecordSimilarityRequestDeserializer());
101-
deserializers.addDeserializer(RecordSimilarityResult.class, new RecordSimilarityResultDeserializer());
101+
deserializers.addDeserializer(RecordSimilarityResponse.class, new RecordSimilarityResponseDeserializer());
102102
context.addDeserializers(deserializers);
103103
}
104104

json/src/main/java/com/basistech/rosette/apimodel/jackson/recordsimilaritydeserializers/RecordSimilarityDeserializerUtilities.java

Lines changed: 48 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,19 @@
1919
import java.io.IOException;
2020
import java.util.HashMap;
2121
import java.util.Iterator;
22+
import java.util.List;
2223
import java.util.Map;
24+
import java.util.Optional;
25+
import java.util.stream.Collectors;
26+
import java.util.stream.StreamSupport;
2327

28+
import com.basistech.rosette.apimodel.recordsimilarity.RecordSimilarityExplainInfo;
29+
import com.basistech.rosette.apimodel.recordsimilarity.RecordSimilarityResult;
2430
import com.fasterxml.jackson.core.JsonParser;
2531
import com.fasterxml.jackson.databind.JsonNode;
32+
2633
import javax.validation.Valid;
34+
import javax.validation.constraints.NotNull;
2735

2836
import com.basistech.rosette.apimodel.recordsimilarity.RecordSimilarityFieldInfo;
2937
import com.basistech.rosette.apimodel.recordsimilarity.records.AddressField;
@@ -33,9 +41,47 @@
3341

3442
final class RecordSimilarityDeserializerUtilities {
3543

36-
private RecordSimilarityDeserializerUtilities() { }
44+
private RecordSimilarityDeserializerUtilities() {
45+
}
46+
47+
public static RecordSimilarityResult parseResult(
48+
JsonNode node,
49+
JsonParser jsonParser,
50+
@Valid Map<String, RecordSimilarityFieldInfo> fields
51+
) throws IOException {
52+
final Double score = node.get("score") != null
53+
? node.get("score").traverse(jsonParser.getCodec()).readValueAs(Double.class)
54+
: null;
55+
final RecordSimilarityExplainInfo explainInfo = node.get("explainInfo") != null
56+
? node.get("explainInfo").traverse(jsonParser.getCodec()).readValueAs(RecordSimilarityExplainInfo.class)
57+
: null;
58+
final Map<String, RecordSimilarityField> left = node.get("left") != null && fields != null
59+
? parseRecord(node.get("left"), jsonParser, fields)
60+
: null;
61+
final Map<String, RecordSimilarityField> right = node.get("right") != null && fields != null
62+
? parseRecord(node.get("right"), jsonParser, fields)
63+
: null;
64+
final String error = Optional.ofNullable(node.get("error")).map(JsonNode::asText).orElse(null);
65+
List<String> info = Optional.ofNullable(node.get("info"))
66+
.map(jsonNode -> StreamSupport.stream(jsonNode.spliterator(), false)
67+
.map(JsonNode::asText)
68+
.collect(Collectors.toList()))
69+
.orElse(null);
70+
return RecordSimilarityResult.builder()
71+
.score(score)
72+
.left(left)
73+
.right(right)
74+
.explainInfo(explainInfo)
75+
.error(error)
76+
.info(info)
77+
.build();
78+
}
3779

38-
static Map<String, RecordSimilarityField> parseRecord(JsonNode jsonNode, @Valid Map<String, RecordSimilarityFieldInfo> fields, JsonParser jsonParser) throws IOException {
80+
static Map<String, RecordSimilarityField> parseRecord(
81+
JsonNode jsonNode,
82+
JsonParser jsonParser,
83+
@NotNull @Valid Map<String, RecordSimilarityFieldInfo> fields
84+
) throws IOException {
3985
final Iterator<Map.Entry<String, JsonNode>> recordsIterator = jsonNode.fields();
4086
final Map<String, RecordSimilarityField> recordMap = new HashMap<>();
4187
while (recordsIterator.hasNext()) {

json/src/main/java/com/basistech/rosette/apimodel/jackson/recordsimilaritydeserializers/RecordSimilarityRequestDeserializer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ private static List<Map<String, RecordSimilarityField>> parseRecords(final JsonN
6767
final JsonParser jsonParser) throws IOException {
6868
final List<Map<String, RecordSimilarityField>> records = new ArrayList<>();
6969
for (JsonNode recordNode : arrayNode) {
70-
records.add(RecordSimilarityDeserializerUtilities.parseRecord(recordNode, fields, jsonParser));
70+
records.add(RecordSimilarityDeserializerUtilities.parseRecord(recordNode, jsonParser, fields));
7171
}
7272
return records;
7373
}

0 commit comments

Comments
 (0)