{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://schemas.mpai.community/AIF/V2.0/AIW-AIM-metadata.schema.json",
  "$id": "https://schemas.mpai.community/MMC/V2.3/AIMs/TextAndImageQuery.json",
  "title": "TextAndImageQuery",
  "Identifier": {
    "ImplementerID": "/* String assigned by IIDRA */",
    "Specification": {
      "Name": "MPAI-MMC ",
      "AIW": "",
      "AIM": "TextAndImageQuery",
      "Version": "V2.3"
    }
  },
  "Description": "This AIM provides a Text in response to a Text and an Image.",
  "Types": [
    {
      "Name": "TextObject_t",
      "Type": "uint8[]"
    },
    {
      "Name": "VisualObject_t",
      "Type": "uint8[]"
    }
  ],
  "Ports": [
    {
      "Name": "VisualObject",
      "Direction": "InputOutput",
      "RecordType": "VisualObject_t",
      "Technology": "Software",
      "Protocol": "",
      "IsRemote": false
    },
    {
      "Name": "InstanceID",
      "Direction": "InputOutput",
      "RecordType": "InstanceID_t",
      "Technology": "Software",
      "Protocol": "",
      "IsRemote": false
    },
    {
      "Name": "TextObject1",
      "Direction": "InputOutput",
      "RecordType": "TextObject_t",
      "Technology": "Software",
      "Protocol": "",
      "IsRemote": false
    },
    {
      "Name": "Meaning1",
      "Direction": "InputOutput",
      "RecordType": "Meaning_t",
      "Technology": "Software",
      "Protocol": "",
      "IsRemote": false
    },
    {
      "Name": "RefinedText",
      "Direction": "InputOutput",
      "RecordType": "TextObject_t",
      "Technology": "Software",
      "Protocol": "",
      "IsRemote": false
    },
    {
      "Name": "Meaning2",
      "Direction": "InputOutput",
      "RecordType": "Meaning_t",
      "Technology": "Software",
      "Protocol": "",
      "IsRemote": false
    },
    {
      "Name": "Intention1",
      "Direction": "InputOutput",
      "RecordType": "Intention_t",
      "Technology": "Software",
      "Protocol": "",
      "IsRemote": false
    },
    {
      "Name": "",
      "Direction": "InputOutput",
      "RecordType": "",
      "Technology": "Software",
      "Protocol": "",
      "IsRemote": false
    },
    {
      "Name": "MachineText",
      "Direction": "OutputInput",
      "RecordType": "TextObject_t",
      "Technology": "Software",
      "Protocol": "",
      "IsRemote": false
    }
  ],
  "SubAIMs": [
    {
      "Name": "VisualObjectIdentification",
      "Identifier": {
        "ImplementerID": "/* String assigned by IIDRA */",
        "Specification": {
          "Standard": "MPAI-OSD",
          "AIW": "",
          "AIM": "VisualObjectIdentification",
          "Version": "V1.2"
        }
      }
    },
    {
      "Name": "NaturalLanguageUnderstanding",
      "Identifier": {
        "ImplementerID": "/* String assigned by IIDRA */",
        "Specification": {
          "Standard": "MPAI-MMC",
          "AIW": "",
          "AIM": "NaturalLanguageUnderstanding",
          "Version": "V2.3"
        }
      }
    },
    {
      "Name": "QuestionAnalysisModule",
      "Identifier": {
        "ImplementerID": "/* String assigned by IIDRA */",
        "Specification": {
          "Standard": "MPAI-MMC",
          "AIW": "",
          "AIM": "QuestionAnalysisModule",
          "Version": "V2.3"
        }
      }
    },
    {
      "Name": "AnswerToQuestionModule",
      "Identifier": {
        "ImplementerID": "/* String assigned by IIDRA */",
        "Specification": {
          "Standard": "MPAI-MMC",
          "AIW": "",
          "AIM": "AnswerToQuestionModule",
          "Version": "V2.3"
        }
      }
    }
  ],
  "Topology": [
    {
      "Output": {
        "AIMName": "",
        "PortName": "VisualObject"
      },
      "Input": {
        "AIMName": "VisualObjectIdentification",
        "PortName": "VisualObject"
      }
    },
    {
      "Output": {
        "AIMName": "VisualObjectIdentification",
        "PortName": "InstanceID"
      },
      "Input": {
        "AIMName": "NaturalLanguageUnderstanding",
        "PortName": "InstanceID"
      }
    },
    {
      "Output": {
        "AIMName": "",
        "PortName": "TextObject"
      },
      "Input": {
        "AIMName": "NaturalLanguageUnderstanding",
        "PortName": "TextObject"
      }
    },
    {
      "Output": {
        "AIMName": "NaturalLanguageUnderstanding",
        "PortName": "Meaning"
      },
      "Input": {
        "AIMName": "QuestionAnalysisModule",
        "PortName": "Meaning"
      }
    },
    {
      "Output": {
        "AIMName": "NaturalLanguageUnderstanding",
        "PortName": "RecognisedText"
      },
      "Input": {
        "AIMName": "AnswerToQuestionModule",
        "PortName": "RecognisedText"
      }
    },
    {
      "Output": {
        "AIMName": "NaturalLanguageUnderstanding",
        "PortName": "Meaning"
      },
      "Input": {
        "AIMName": "QuestionAnalysisModule",
        "PortName": "Meaning"
      }
    },
    {
      "Output": {
        "AIMName": "QuestionAnalysisModule",
        "PortName": "Intention"
      },
      "Input": {
        "AIMName": "AnswerToQuestionModule",
        "PortName": "Intention"
      }
    },
    {
      "Output": {
        "AIMName": "AnswerToQuestionModule",
        "PortName": "MachineText"
      },
      "Input": {
        "AIMName": "",
        "PortName": "MachineText"
      }
    }
  ],
  "Implementations": [],
  "Documentation": [
    {
      "Type": "Tutorial",
      "URI": "https://mpai.community/standards/MPAI-MMC/"
    }
  ]
}