Replies: 7 comments 51 replies
-
Example that I currently have going for lama-first: { Early version, let me know what you think / what else I'm missing! @haz |
Beta Was this translation helpful? Give feedback.
-
A great start, thanks! Slight re-write... {
"name": "LAMA-FIRST",
"description": "http://fast-downward.org/",
"install-size": "20K",
"dependencies": ["downward"],
"endpoint": {
"type": "solver",
"args": [
{"name": "whatever",
"description": "this is just a random argument added to show things"}
],
"return": {
"type": "generic",
"file": "sas_plan"
}
} Further notes:
An example of a more generic one: {
"name": "macq",
"description": "A library for model acquisition",
"install-size": "20M",
"dependencies": [],
"endpoint": {
"type": "custom",
"args": [
{"name": "domain",
"type": "file",
"description": "domain file"},
{"name": "problem",
"type": "file",
"description": "problem file"},
],
"services": {
"analyze": {
"args": [
{"name": "trace",
"type": "file",
"description": "number of plans to generate"},
],
"call": "macq --analyze {trace} --out output.txt",
"return": {
"type": "generic",
"file": "output.txt"
}
},
"generate": {
"args": [
{"name": "num_plans",
"type": "cmd-arg",
"description": "number of plans to generate"},
],
"call": "macq --domain {domain} --problem {problem} --num {num_plans} --out plans.json",
"return": {
"type": "json",
"file": "plans.json"
},
}
}
} That make sense? |
Beta Was this translation helpful? Give feedback.
-
@nirlipo Any thoughts on this? General idea is that a manifest like the above in @mikand You may want to have a look through as well. Again, not for your project to connect to the planning services (though you're more than welcome to), but to lock in on the design of the API. In particular, there will be a generic "I am a solver" API that saves us from writing much of the manifest details. |
Beta Was this translation helpful? Give feedback.
-
Based on your discussion and my understanding, I have made the following changes:
Reasons: Below is the new manifest template:
Example 1. For solver type service Below is the example manifest for Lama-first:
Below is the example plans.json for Lama-first:
Example 2. For generic type service: Below is the example manifest for macq:
|
Beta Was this translation helpful? Give feedback.
-
Thanks for your comments. I have separated my replies into three parts.
Part1: Introduce to the inherit keyword 1. When the user use
2. Overwrite the default planner template Users can overwrite the Below are examples of how to overwrite the default planner template.
The above service can be overwritten to:
|
Beta Was this translation helpful? Give feedback.
-
Part2: Updated manifest and examples
For all the planner, we can use
2. Example of lama-first manifest
3. Example of macq
|
Beta Was this translation helpful? Give feedback.
-
Part3: Package-free solve endpoint I assume there will be only one planner linked to the package-free
|
Beta Was this translation helpful? Give feedback.
-
In planutils, we'll want to describe the full API, so that this planner-as-a-service package automagically exposes the "right stuff". What should that JSON manifest look like for both a generic planner endpoint and an arbitrary service.
CC: @camcunningham @nirlipo
Things to include:
Note: If it is a generic planner service, then many things may be left out, and extra assumptions come into play:
plan
orsolve
endpoint.domain
andproblem
strings.extra_args
for any planner config required{planner} {domain} {problem} {extra_args}
Beta Was this translation helpful? Give feedback.
All reactions