Version 2
Response OS Version 2
Version 2 of the Response OS application makes a major refactoring of the application architecture to transition data processing to a Resource Description Framework (RDF) based data model coupled with a complete re-design and re-implementation of data extraction and standardisation processes.
The application follows domain driven design principles with each component representing a specific domain.
RFP API
The RFP API is the main API for the Response OS application. It provides endpoints for creating and managing RFP data, extracting and standardising data, and searching for quotes based on historic order data and acts as a client to the other components.
RFP Postgres Database
The RFP Postgres Database is used to store and manage RFP data. It is the primary data store for the RFP API and provides a relational database interface for querying and managing RFP records.
Extraction API
The Extraction API is responsible for taking an input array of key value pairs plus a mapping object of input keys to raw print order mappings and returning an RDF record in JSON-LD format with values extracted from the input data to the target ontology. It uses the hhg-print-domain package for ontology and the ros-extractor package to perform data extraction.
Quotes API
The Quotes API provides endpoints for searching and generating quotes based on historic order data. It uses the Milvus vector database for similarity search and provides a way to retrieve quotes based on specific criteria.
Milvus Vector Database
The Milvus Vector Database is used for similarity search of historic order data. It provides a way to perform vector-based searches and retrieve similar records based on their vector representations.
RDF based Extraction Pipeline
Version 2 implements a new RDF based extraction pipeline with multiple SKOS ontologies built to model the data from at each stage of the extraction process. The extraction pipeline introduces the concept of domains (e.g. material, manufacturing etc) each with their own SKOS ontologies to which data is extracted in the extraction phase.
Web server is returning an unknown error Error code 520
What happened?
There is an unknown connection issue between Cloudflare and the origin web server. As a result, the web page can not be displayed.
What can I do?
If you are a visitor of this website:
Please try again in a few minutes.
If you are the owner of this website:
There is an issue between Cloudflare's cache and your origin web server. Cloudflare monitors for these errors and automatically investigates the cause. To help support the investigation, you can pull the corresponding error log from your web server and submit it our support team. Please include the Ray ID (which is at the bottom of this error page). Additional troubleshooting resources.
RDF to Object Mapping
Object representation of RDF records is required for data rendering and storage / search using Milvus. RDF to object mapping is handled by the Northell Pylon package which provides ORM like functionality for Milvus and other stores.
We have retained an object representation of the RDF record as the primary object model used in the Blazor application:
Example of a Print Record in JSON-LD format
{
"@graph": [
{
"@id": "hub:af295eac410546bba9673cc41d0dad43",
"@type": [
"domain:ManufacturingRecord",
"print:PrintRecord",
"domain:SupplierRecord",
"domain:ProductRecord",
"domain:MaterialRecord"
],
"print:hasPrice": {
"@type": "http://www.w3.org/2001/XMLSchema#decimal",
"@value": "4065.83"
},
"domain:hasDomain": [
{
"@id": "domain:MaterialDomain"
},
{
"@id": "domain:ProductDomain"
},
{
"@id": "domain:SupplierDomain"
},
{
"@id": "domain:ManufacturingDomain"
}
],
"print:hasQuantity": 5196,
"print:hasProofType": "No proof required",
"print:hasCustomerID": 32065,
"print:hasCurrencyCode": "USD",
"print:hasCustomerName": "Republic Services, Inc(Republic Services)",
"print:hasElementTitle": "RS Brand eStore 11.30 Multiple POs",
"print:hasMaterialType": "Paper and board",
"print:hasPrintedSides": "Not printed",
"print:hasSupplierName": "Navitor- Republic Services (Navitor – eStores only)",
"extraction:hasActivity": [
{
"@id": "extraction:0444b02d-6106-4d0f-b908-d4c3a297daba",
"@type": "http://www.w3.org/ns/prov#Activity",
"versions:hasHFModelVersion": "527c36bac305cc370ab4b09d3d8a310f5f77721a",
"versions:hasExtractorVersion": "1.0.109",
"versions:hasPrintDomainVersion": "1.0.147",
"http://www.w3.org/ns/prov#endedAtTime": {
"@type": "http://www.w3.org/2001/XMLSchema#dateTime",
"@value": "2025-06-04T07:43:33.653503"
},
"http://www.w3.org/ns/prov#startedAtTime": {
"@type": "http://www.w3.org/2001/XMLSchema#dateTime",
"@value": "2025-06-04T07:42:57.257531"
},
"http://www.w3.org/ns/prov#wasAssociatedWith": {
"@id": "extraction:ReadinessValidator",
"@type": "http://www.w3.org/ns/prov#SoftwareAgent"
},
"http://www.w3.org/2000/01/rdf-schema#comment": "Transformation performed: process"
},
{
"@id": "extraction:f7f2f479-c254-45a8-9315-e30bb9864205",
"@type": "http://www.w3.org/ns/prov#Activity",
"versions:hasHFModelVersion": "527c36bac305cc370ab4b09d3d8a310f5f77721a",
"versions:hasExtractorVersion": "1.0.109",
"versions:hasPrintDomainVersion": "1.0.147",
"http://www.w3.org/ns/prov#endedAtTime": {
"@type": "http://www.w3.org/2001/XMLSchema#dateTime",
"@value": "2025-06-04T07:44:25.470543"
},
"http://www.w3.org/ns/prov#startedAtTime": {
"@type": "http://www.w3.org/2001/XMLSchema#dateTime",
"@value": "2025-06-04T07:43:37.266133"
},
"http://www.w3.org/ns/prov#wasAssociatedWith": {
"@id": "extraction:ReadinessValidator",
"@type": "http://www.w3.org/ns/prov#SoftwareAgent"
},
"http://www.w3.org/2000/01/rdf-schema#comment": "Transformation performed: process"
},
{
"@id": "extraction:c06c1632-974d-4dae-accb-6047ed229916",
"@type": "http://www.w3.org/ns/prov#Activity",
"versions:hasHFModelVersion": "527c36bac305cc370ab4b09d3d8a310f5f77721a",
"versions:hasExtractorVersion": "1.0.109",
"versions:hasPrintDomainVersion": "1.0.147",
"http://www.w3.org/ns/prov#endedAtTime": {
"@type": "http://www.w3.org/2001/XMLSchema#dateTime",
"@value": "2025-06-04T07:42:56.956401"
},
"http://www.w3.org/ns/prov#startedAtTime": {
"@type": "http://www.w3.org/2001/XMLSchema#dateTime",
"@value": "2025-06-04T07:42:56.651511"
},
"http://www.w3.org/ns/prov#wasAssociatedWith": {
"@id": "extraction:DomainRouter",
"@type": "http://www.w3.org/ns/prov#SoftwareAgent"
},
"http://www.w3.org/2000/01/rdf-schema#comment": "Transformation performed: add_domain_tags_to_graph"
},
{
"@id": "extraction:b71c741e-0784-45a5-8605-e0ed5edf17f5",
"@type": "http://www.w3.org/ns/prov#Activity",
"versions:hasHFModelVersion": "527c36bac305cc370ab4b09d3d8a310f5f77721a",
"versions:hasExtractorVersion": "1.0.109",
"versions:hasPrintDomainVersion": "1.0.147",
"http://www.w3.org/ns/prov#endedAtTime": {
"@type": "http://www.w3.org/2001/XMLSchema#dateTime",
"@value": "2025-06-04T07:42:45.707104"
},
"http://www.w3.org/ns/prov#startedAtTime": {
"@type": "http://www.w3.org/2001/XMLSchema#dateTime",
"@value": "2025-06-04T07:42:43.941086"
},
"http://www.w3.org/ns/prov#wasAssociatedWith": {
"@id": "extraction:SchemaMapper",
"@type": "http://www.w3.org/ns/prov#SoftwareAgent"
},
"http://www.w3.org/2000/01/rdf-schema#comment": "Transformation performed: map_data"
},
{
"@id": "extraction:44ff69d0-40e2-4044-9ae8-36bde85a2277",
"@type": "http://www.w3.org/ns/prov#Activity",
"versions:hasHFModelVersion": "527c36bac305cc370ab4b09d3d8a310f5f77721a",
"versions:hasExtractorVersion": "1.0.109",
"versions:hasPrintDomainVersion": "1.0.147",
"http://www.w3.org/ns/prov#endedAtTime": {
"@type": "http://www.w3.org/2001/XMLSchema#dateTime",
"@value": "2025-06-04T07:44:40.076636"
},
"http://www.w3.org/ns/prov#startedAtTime": {
"@type": "http://www.w3.org/2001/XMLSchema#dateTime",
"@value": "2025-06-04T07:44:39.863001"
},
"http://www.w3.org/ns/prov#wasAssociatedWith": {
"@id": "extraction:ReadinessValidator",
"@type": "http://www.w3.org/ns/prov#SoftwareAgent"
},
"http://www.w3.org/2000/01/rdf-schema#comment": "Transformation performed: process"
}
],
"product:hasProductType": {
"@id": "https://www.northell.com/taxonomies/ProductTypes/LoosePrint"
},
"manufacturing:hasCutting": {
"@id": "https://www.northell.com/taxonomies/ManufacturingTaxonomy/CuttingToSize"
},
"print:hasProductCategory": "Loose Print",
"inter-domain:hasElementId": 3095883,
"print:hasFinishedQuantity": 5196,
"print:hasMaterialCategory": "Paper",
"inter-domain:hasInternalId": "d446468b-c81a-466b-9c33-a3cae14578d6",
"material:hasMaterialWeight": {
"@type": "http://www.w3.org/2001/XMLSchema#decimal",
"@value": "1.0"
},
"inter-domain:hasCreatedDate": {
"@type": "http://www.w3.org/2001/XMLSchema#date",
"@value": "2024-01-31"
},
"measurement:hasUnitOfMeasure": {
"@id": "http://qudt.org/vocab/unit/IN"
},
"print:hasCustomerHomeCountry": "United States",
"print:hasMaterialDescription": "Business Cards",
"inter-domain:hasPermutationID": "af295eac-4105-46bb-a967-3cc41d0dad43",
"material:hasCoverMaterialType": {
"@id": "https://www.northell.com/taxonomies/MaterialTypes/Paper"
},
"material:hasRecycledPercentage": "0%",
"print:hasFscPaperBeenSpecified": "No",
"print:hasMaterialUnitOfMeasure": "Inches (in)",
"manufacturing:hasProofRequirement": {
"@id": "https://www.northell.com/taxonomies/ManufacturingTaxonomy/NoProofRequired"
},
"material:hasSubstrateMaterialType": {
"@id": "https://www.northell.com/taxonomies/AdditionalMaterialTypes/Paper"
},
"material:hasCoverMaterialThickness": "1",
"print:hasMaterialThicknessOrWeight": 1,
"print:hasMaterialRecycledPercentage": "0%",
"print:hasRecycledContentBeenOffered": "N/A",
"material:hasSubstrateMaterialThickness": {
"@type": "http://www.w3.org/2001/XMLSchema#decimal",
"@value": "1.0"
},
"material:hasMaterialThicknessOrWeightUnit": {
"@id": "http://qudt.org/vocab/unit/IN"
}
}
],
"@context": {
"dlq": "https://northell.com/extraction/dead-letter-queue/",
"hub": "https://northell.com/ontologies/mapping-rules/hub/",
"print": "https://northell.com/ontologies/mapping-rules/print/",
"domain": "https://northell.com/ontologies/mapping-rules/domain/",
"feature": "https://northell.com/ontologies/mapping-rules/feature/",
"mapping": "https://northell.com/ontologies/mapping-rules/mapping-ontology/",
"product": "https://northell.com/ontologies/mapping-rules/product/",
"assembly": "https://northell.com/ontologies/mapping-rules/assembly/",
"material": "https://northell.com/ontologies/mapping-rules/material/",
"shipping": "https://northell.com/ontologies/mapping-rules/shipping/",
"supplier": "https://northell.com/ontologies/mapping-rules/supplier/",
"versions": "https://northell.com/version/",
"extraction": "https://northell.com/extraction/",
"measurement": "https://northell.com/ontologies/mapping-rules/measurement/",
"inter-domain": "https://northell.com/ontologies/mapping-rules/inter-domain/",
"manufacturing": "https://northell.com/ontologies/mapping-rules/manufacturing/"
}
}
Example of a Print Record in Object format
{
"id": "40741d24-8544-423b-bba5-7848917828f9",
"coating": "unset",
"cutting": "https://www.northell.com/taxonomies/ManufacturingTaxonomy/CuttingToSize",
"category": "unset",
"order_id": "5fc90155-3c4e-4da8-9d75-a0f73bf6d6a0",
"quantity": 5196,
"supplier": "Navitor- Republic Services (Navitor – eStores only)",
"fold_type": "unset",
"ink_color": "unset",
"lamination": "unset",
"order_date": "2024-01-31T00:00:00",
"page_count": 1,
"edge_finish": "unset",
"perforation": "unset",
"subcategory": "unset",
"price_in_usd": 4065.83,
"product_type": "https://www.northell.com/taxonomies/ProductTypes/LoosePrint",
"spot_coating": "unset",
"customer_name": "Republic Services, Inc(Republic Services)",
"printed_sides": "unset",
"total_colours": -1,
"permutation_id": "af295eac-4105-46bb-a967-3cc41d0dad43",
"proof_quantity": 0,
"flat_size_width": 0.0,
"collation_method": false,
"flat_size_height": 0.0,
"printing_details": "unset",
"finish_size_width": 0.0,
"finishing_details": "unset",
"home_country_iso3": "United States",
"primary_substrate": {
"id": "9eb047d4-c4d0-4ebf-8a61-fb3704a057ba",
"brand": "unset",
"finish": "Business Cards",
"fsc_certified": false,
"material_unit": "Inches (in)",
"substrate_type": "https://www.northell.com/taxonomies/AdditionalMaterialTypes/Paper",
"recycled_percentage": "0%",
"weight_or_thickness": 1.0
},
"proof_requirement": "https://www.northell.com/taxonomies/ManufacturingTaxonomy/NoProofRequired",
"finish_size_height": 0.0,
"number_of_versions": 1,
"quantity_per_version": 1
}