Vadalingo (Translations)

Translate natural language, SQL, RDF, and OWL into Vadalog programs using LLM-powered translation.

Natural Language to Vadalog

Translate a natural language description into a Vadalog program. You can reference existing concepts using @concept_name in your description — their schemas will be used as context for the translation. HTTP Request:
POST /api/v1/vadalingo/{project_id}/translate/nl-to-vadalog
Request Body:
FieldTypeRequiredDescription
domain_knowledgestringYesNatural language description to translate. Use @concept_name to reference existing concepts
Example:
curl -X POST "https://api.prometheux.ai/jarvispy/my-org/my-user/api/v1/vadalingo/my-project-id/translate/nl-to-vadalog" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -d '{
    "domain_knowledge": "Find all companies that are transitively controlled by @owner through ownership chains"
  }'
Response:
{
  "data": {
    "domain_knowledge": "Find all companies that are transitively controlled by @owner...",
    "vadalog_program": "control(X, Y) <- owner(X, Y, S), S > 0.5.\ncontrol(X, Z) <- control(X, Y), owner(Y, Z, S), S > 0.5.",
    "project_id": "my-project-id",
    "concepts_used": ["owner"],
    "concepts_source": "tagged"
  },
  "message": "Natural language to Vadalog translation completed successfully",
  "status": "success"
}
When you include @concept_name in the description, the API fetches those concepts’ schemas and provides them as context to the LLM. If no @ references are found, all project concepts are used as context.

SQL to Vadalog

Translate a SQL query into a Vadalog program. HTTP Request:
POST /api/v1/vadalingo/{project_id}/translate/sql-to-vadalog
Example:
curl -X POST "https://api.prometheux.ai/jarvispy/my-org/my-user/api/v1/vadalingo/my-project-id/translate/sql-to-vadalog" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -d '{
    "sql_data": "SELECT c.name, SUM(o.amount) FROM customers c JOIN orders o ON c.id = o.customer_id GROUP BY c.name"
  }'

RDF to Vadalog

Translate RDF data into a Vadalog program. HTTP Request:
POST /api/v1/vadalingo/{project_id}/translate/rdf-to-vadalog
Example:
curl -X POST "https://api.prometheux.ai/jarvispy/my-org/my-user/api/v1/vadalingo/my-project-id/translate/rdf-to-vadalog" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -d '{
    "rdf_data": "<http://example.org/Alice> <http://xmlns.com/foaf/0.1/knows> <http://example.org/Bob> ."
  }'

OWL to Vadalog

Translate an OWL ontology into Vadalog rules. Supports RDF/XML, Turtle, N3, and N-Triples formats. Can optionally generate Parquet data files and save the result as a concept. HTTP Request:
POST /api/v1/vadalingo/{project_id}/translate/owl-to-vadalog
Request Body:
FieldTypeRequiredDescription
owl_contentstringYesOWL ontology content (RDF/XML, Turtle, N3, N-Triples)
base_namespacestringYesBase namespace for local classes and properties
data_base_pathstringNoRelative path for Parquet output (e.g. "owl")
add_conceptsbooleanNoSave the result as a concept in the project. Default: false
optionsobjectNoConfiguration options (see below)
Options:
FieldTypeDefaultDescription
include_importsbooleanfalseProcess imported ontologies
include_schemabooleanfalseInclude schema documentation in Vadalog output
include_not_rulesbooleanfalseGenerate integrity constraint rules using negation
Response:
{
  "data": {
    "owl_content_length": 4526,
    "base_namespace": "http://example.org/ontology#",
    "predicates": { },
    "rules": [],
    "vadalog_program": "...",
    "data_bindings": [],
    "saved_data_files": [],
    "metadata": { },
    "project_id": "my-project-id",
    "concept_id": null
  },
  "message": "OWL to Vadalog translation completed successfully",
  "status": "success"
}