{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Advanced features"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This tutorial takes up where the [basic tutorial](Quickstart.ipynb) left off.\n",
    "\n",
    "It covers more advanced tasks such as:\n",
    "\n",
    "* Listing available services in an endpoint\n",
    "* Transforming the results of a service\n",
    "* Calling multiple services in the same request (Pipelines)\n",
    "* Running your own Senpy instance"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Requirements"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Once again we will use the demo server at http://senpy.gsi.upm.es, and a function to prettify the semantic output."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "endpoint = 'http://senpy.gsi.upm.es/api'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import requests\n",
    "from IPython.display import Code\n",
    "     \n",
    "def query(endpoint, raw=False, **kwargs):\n",
    "    '''Query a given Senpy endpoint with specific parameters, and prettify the output'''\n",
    "    res = requests.get(endpoint,\n",
    "                       params=kwargs)\n",
    "    if raw:\n",
    "        return res\n",
    "    return Code(res.text, language=kwargs.get('outformat', 'json-ld'))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Selecting fields from the output"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The full output in the previous tutorials is very useful because it is semantically annotated.\n",
    "However, it is also quite verbose if we only want to label a piece of text, or get a polarity value.\n",
    "\n",
    "For such simple cases, the API has a special `fields` method you can use to get a specific field from the results, and even transform the results. Senpy uses jmespath under the hood, which has its own notation.\n",
    "\n",
    "To illustrate this, let us get only the text (`nif:isString`) from each entry:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>.output_html .hll { background-color: #ffffcc }\n",
       ".output_html  { background: #f8f8f8; }\n",
       ".output_html .c { color: #408080; font-style: italic } /* Comment */\n",
       ".output_html .err { border: 1px solid #FF0000 } /* Error */\n",
       ".output_html .k { color: #008000; font-weight: bold } /* Keyword */\n",
       ".output_html .o { color: #666666 } /* Operator */\n",
       ".output_html .ch { color: #408080; font-style: italic } /* Comment.Hashbang */\n",
       ".output_html .cm { color: #408080; font-style: italic } /* Comment.Multiline */\n",
       ".output_html .cp { color: #BC7A00 } /* Comment.Preproc */\n",
       ".output_html .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */\n",
       ".output_html .c1 { color: #408080; font-style: italic } /* Comment.Single */\n",
       ".output_html .cs { color: #408080; font-style: italic } /* Comment.Special */\n",
       ".output_html .gd { color: #A00000 } /* Generic.Deleted */\n",
       ".output_html .ge { font-style: italic } /* Generic.Emph */\n",
       ".output_html .gr { color: #FF0000 } /* Generic.Error */\n",
       ".output_html .gh { color: #000080; font-weight: bold } /* Generic.Heading */\n",
       ".output_html .gi { color: #00A000 } /* Generic.Inserted */\n",
       ".output_html .go { color: #888888 } /* Generic.Output */\n",
       ".output_html .gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n",
       ".output_html .gs { font-weight: bold } /* Generic.Strong */\n",
       ".output_html .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n",
       ".output_html .gt { color: #0044DD } /* Generic.Traceback */\n",
       ".output_html .kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n",
       ".output_html .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n",
       ".output_html .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n",
       ".output_html .kp { color: #008000 } /* Keyword.Pseudo */\n",
       ".output_html .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n",
       ".output_html .kt { color: #B00040 } /* Keyword.Type */\n",
       ".output_html .m { color: #666666 } /* Literal.Number */\n",
       ".output_html .s { color: #BA2121 } /* Literal.String */\n",
       ".output_html .na { color: #7D9029 } /* Name.Attribute */\n",
       ".output_html .nb { color: #008000 } /* Name.Builtin */\n",
       ".output_html .nc { color: #0000FF; font-weight: bold } /* Name.Class */\n",
       ".output_html .no { color: #880000 } /* Name.Constant */\n",
       ".output_html .nd { color: #AA22FF } /* Name.Decorator */\n",
       ".output_html .ni { color: #999999; font-weight: bold } /* Name.Entity */\n",
       ".output_html .ne { color: #D2413A; font-weight: bold } /* Name.Exception */\n",
       ".output_html .nf { color: #0000FF } /* Name.Function */\n",
       ".output_html .nl { color: #A0A000 } /* Name.Label */\n",
       ".output_html .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */\n",
       ".output_html .nt { color: #008000; font-weight: bold } /* Name.Tag */\n",
       ".output_html .nv { color: #19177C } /* Name.Variable */\n",
       ".output_html .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */\n",
       ".output_html .w { color: #bbbbbb } /* Text.Whitespace */\n",
       ".output_html .mb { color: #666666 } /* Literal.Number.Bin */\n",
       ".output_html .mf { color: #666666 } /* Literal.Number.Float */\n",
       ".output_html .mh { color: #666666 } /* Literal.Number.Hex */\n",
       ".output_html .mi { color: #666666 } /* Literal.Number.Integer */\n",
       ".output_html .mo { color: #666666 } /* Literal.Number.Oct */\n",
       ".output_html .sa { color: #BA2121 } /* Literal.String.Affix */\n",
       ".output_html .sb { color: #BA2121 } /* Literal.String.Backtick */\n",
       ".output_html .sc { color: #BA2121 } /* Literal.String.Char */\n",
       ".output_html .dl { color: #BA2121 } /* Literal.String.Delimiter */\n",
       ".output_html .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n",
       ".output_html .s2 { color: #BA2121 } /* Literal.String.Double */\n",
       ".output_html .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */\n",
       ".output_html .sh { color: #BA2121 } /* Literal.String.Heredoc */\n",
       ".output_html .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */\n",
       ".output_html .sx { color: #008000 } /* Literal.String.Other */\n",
       ".output_html .sr { color: #BB6688 } /* Literal.String.Regex */\n",
       ".output_html .s1 { color: #BA2121 } /* Literal.String.Single */\n",
       ".output_html .ss { color: #19177C } /* Literal.String.Symbol */\n",
       ".output_html .bp { color: #008000 } /* Name.Builtin.Pseudo */\n",
       ".output_html .fm { color: #0000FF } /* Name.Function.Magic */\n",
       ".output_html .vc { color: #19177C } /* Name.Variable.Class */\n",
       ".output_html .vg { color: #19177C } /* Name.Variable.Global */\n",
       ".output_html .vi { color: #19177C } /* Name.Variable.Instance */\n",
       ".output_html .vm { color: #19177C } /* Name.Variable.Magic */\n",
       ".output_html .il { color: #666666 } /* Literal.Number.Integer.Long */</style><div class=\"highlight\"><pre><span></span><span class=\"p\">[</span><span class=\"s2\">&quot;Senpy is a wonderful service&quot;</span><span class=\"p\">]</span>\n",
       "</pre></div>\n"
      ],
      "text/latex": [
       "\\begin{Verbatim}[commandchars=\\\\\\{\\}]\n",
       "\\PY{p}{[}\\PY{l+s+s2}{\\PYZdq{}Senpy is a wonderful service\\PYZdq{}}\\PY{p}{]}\n",
       "\\end{Verbatim}\n"
      ],
      "text/plain": [
       "[\"Senpy is a wonderful service\"]"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "query(f'{endpoint}/sentiment140',\n",
    "      input=\"Senpy is a wonderful service\",\n",
    "      fields='entries[].\"nif:isString\"')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Or we could get both the text and the polarity of the text (assuming there is only one opinion per entry) with a slightly more complicated query:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>.output_html .hll { background-color: #ffffcc }\n",
       ".output_html  { background: #f8f8f8; }\n",
       ".output_html .c { color: #408080; font-style: italic } /* Comment */\n",
       ".output_html .err { border: 1px solid #FF0000 } /* Error */\n",
       ".output_html .k { color: #008000; font-weight: bold } /* Keyword */\n",
       ".output_html .o { color: #666666 } /* Operator */\n",
       ".output_html .ch { color: #408080; font-style: italic } /* Comment.Hashbang */\n",
       ".output_html .cm { color: #408080; font-style: italic } /* Comment.Multiline */\n",
       ".output_html .cp { color: #BC7A00 } /* Comment.Preproc */\n",
       ".output_html .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */\n",
       ".output_html .c1 { color: #408080; font-style: italic } /* Comment.Single */\n",
       ".output_html .cs { color: #408080; font-style: italic } /* Comment.Special */\n",
       ".output_html .gd { color: #A00000 } /* Generic.Deleted */\n",
       ".output_html .ge { font-style: italic } /* Generic.Emph */\n",
       ".output_html .gr { color: #FF0000 } /* Generic.Error */\n",
       ".output_html .gh { color: #000080; font-weight: bold } /* Generic.Heading */\n",
       ".output_html .gi { color: #00A000 } /* Generic.Inserted */\n",
       ".output_html .go { color: #888888 } /* Generic.Output */\n",
       ".output_html .gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n",
       ".output_html .gs { font-weight: bold } /* Generic.Strong */\n",
       ".output_html .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n",
       ".output_html .gt { color: #0044DD } /* Generic.Traceback */\n",
       ".output_html .kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n",
       ".output_html .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n",
       ".output_html .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n",
       ".output_html .kp { color: #008000 } /* Keyword.Pseudo */\n",
       ".output_html .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n",
       ".output_html .kt { color: #B00040 } /* Keyword.Type */\n",
       ".output_html .m { color: #666666 } /* Literal.Number */\n",
       ".output_html .s { color: #BA2121 } /* Literal.String */\n",
       ".output_html .na { color: #7D9029 } /* Name.Attribute */\n",
       ".output_html .nb { color: #008000 } /* Name.Builtin */\n",
       ".output_html .nc { color: #0000FF; font-weight: bold } /* Name.Class */\n",
       ".output_html .no { color: #880000 } /* Name.Constant */\n",
       ".output_html .nd { color: #AA22FF } /* Name.Decorator */\n",
       ".output_html .ni { color: #999999; font-weight: bold } /* Name.Entity */\n",
       ".output_html .ne { color: #D2413A; font-weight: bold } /* Name.Exception */\n",
       ".output_html .nf { color: #0000FF } /* Name.Function */\n",
       ".output_html .nl { color: #A0A000 } /* Name.Label */\n",
       ".output_html .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */\n",
       ".output_html .nt { color: #008000; font-weight: bold } /* Name.Tag */\n",
       ".output_html .nv { color: #19177C } /* Name.Variable */\n",
       ".output_html .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */\n",
       ".output_html .w { color: #bbbbbb } /* Text.Whitespace */\n",
       ".output_html .mb { color: #666666 } /* Literal.Number.Bin */\n",
       ".output_html .mf { color: #666666 } /* Literal.Number.Float */\n",
       ".output_html .mh { color: #666666 } /* Literal.Number.Hex */\n",
       ".output_html .mi { color: #666666 } /* Literal.Number.Integer */\n",
       ".output_html .mo { color: #666666 } /* Literal.Number.Oct */\n",
       ".output_html .sa { color: #BA2121 } /* Literal.String.Affix */\n",
       ".output_html .sb { color: #BA2121 } /* Literal.String.Backtick */\n",
       ".output_html .sc { color: #BA2121 } /* Literal.String.Char */\n",
       ".output_html .dl { color: #BA2121 } /* Literal.String.Delimiter */\n",
       ".output_html .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n",
       ".output_html .s2 { color: #BA2121 } /* Literal.String.Double */\n",
       ".output_html .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */\n",
       ".output_html .sh { color: #BA2121 } /* Literal.String.Heredoc */\n",
       ".output_html .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */\n",
       ".output_html .sx { color: #008000 } /* Literal.String.Other */\n",
       ".output_html .sr { color: #BB6688 } /* Literal.String.Regex */\n",
       ".output_html .s1 { color: #BA2121 } /* Literal.String.Single */\n",
       ".output_html .ss { color: #19177C } /* Literal.String.Symbol */\n",
       ".output_html .bp { color: #008000 } /* Name.Builtin.Pseudo */\n",
       ".output_html .fm { color: #0000FF } /* Name.Function.Magic */\n",
       ".output_html .vc { color: #19177C } /* Name.Variable.Class */\n",
       ".output_html .vg { color: #19177C } /* Name.Variable.Global */\n",
       ".output_html .vi { color: #19177C } /* Name.Variable.Instance */\n",
       ".output_html .vm { color: #19177C } /* Name.Variable.Magic */\n",
       ".output_html .il { color: #666666 } /* Literal.Number.Integer.Long */</style><div class=\"highlight\"><pre><span></span><span class=\"p\">[</span><span class=\"s2\">&quot;Senpy is a service. Wonderful service.&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;marl:Neutral&quot;</span><span class=\"p\">]</span>\n",
       "</pre></div>\n"
      ],
      "text/latex": [
       "\\begin{Verbatim}[commandchars=\\\\\\{\\}]\n",
       "\\PY{p}{[}\\PY{l+s+s2}{\\PYZdq{}Senpy is a service. Wonderful service.\\PYZdq{}}\\PY{p}{,} \\PY{l+s+s2}{\\PYZdq{}marl:Neutral\\PYZdq{}}\\PY{p}{]}\n",
       "\\end{Verbatim}\n"
      ],
      "text/plain": [
       "[\"Senpy is a service. Wonderful service.\", \"marl:Neutral\"]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "query(f'{endpoint}/sentiment140',\n",
    "      input=\"Senpy is a service. Wonderful service.\",\n",
    "      delimiter=\"sentence\",\n",
    "      fields='entries[0].[\"nif:isString\", \"marl:hasOpinion\"[0].\"marl:hasPolarity\"]')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "jmespath is rather extensive for this tutorial. We will cover only the most simple cases, so you do not need to learn much about the notation.\n",
    "\n",
    "For more complicated transformations, check out [jmespath](http://jmespath.org).\n",
    "In addition to a fairly complete documentation, they have a live environment you can use to test your queries."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Emotion conversion with field selection"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We could mix emotion conversion with field selection to only get the label of an emotion analysis that has been automatically converted:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>.output_html .hll { background-color: #ffffcc }\n",
       ".output_html  { background: #f8f8f8; }\n",
       ".output_html .c { color: #408080; font-style: italic } /* Comment */\n",
       ".output_html .err { border: 1px solid #FF0000 } /* Error */\n",
       ".output_html .k { color: #008000; font-weight: bold } /* Keyword */\n",
       ".output_html .o { color: #666666 } /* Operator */\n",
       ".output_html .ch { color: #408080; font-style: italic } /* Comment.Hashbang */\n",
       ".output_html .cm { color: #408080; font-style: italic } /* Comment.Multiline */\n",
       ".output_html .cp { color: #BC7A00 } /* Comment.Preproc */\n",
       ".output_html .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */\n",
       ".output_html .c1 { color: #408080; font-style: italic } /* Comment.Single */\n",
       ".output_html .cs { color: #408080; font-style: italic } /* Comment.Special */\n",
       ".output_html .gd { color: #A00000 } /* Generic.Deleted */\n",
       ".output_html .ge { font-style: italic } /* Generic.Emph */\n",
       ".output_html .gr { color: #FF0000 } /* Generic.Error */\n",
       ".output_html .gh { color: #000080; font-weight: bold } /* Generic.Heading */\n",
       ".output_html .gi { color: #00A000 } /* Generic.Inserted */\n",
       ".output_html .go { color: #888888 } /* Generic.Output */\n",
       ".output_html .gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n",
       ".output_html .gs { font-weight: bold } /* Generic.Strong */\n",
       ".output_html .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n",
       ".output_html .gt { color: #0044DD } /* Generic.Traceback */\n",
       ".output_html .kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n",
       ".output_html .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n",
       ".output_html .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n",
       ".output_html .kp { color: #008000 } /* Keyword.Pseudo */\n",
       ".output_html .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n",
       ".output_html .kt { color: #B00040 } /* Keyword.Type */\n",
       ".output_html .m { color: #666666 } /* Literal.Number */\n",
       ".output_html .s { color: #BA2121 } /* Literal.String */\n",
       ".output_html .na { color: #7D9029 } /* Name.Attribute */\n",
       ".output_html .nb { color: #008000 } /* Name.Builtin */\n",
       ".output_html .nc { color: #0000FF; font-weight: bold } /* Name.Class */\n",
       ".output_html .no { color: #880000 } /* Name.Constant */\n",
       ".output_html .nd { color: #AA22FF } /* Name.Decorator */\n",
       ".output_html .ni { color: #999999; font-weight: bold } /* Name.Entity */\n",
       ".output_html .ne { color: #D2413A; font-weight: bold } /* Name.Exception */\n",
       ".output_html .nf { color: #0000FF } /* Name.Function */\n",
       ".output_html .nl { color: #A0A000 } /* Name.Label */\n",
       ".output_html .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */\n",
       ".output_html .nt { color: #008000; font-weight: bold } /* Name.Tag */\n",
       ".output_html .nv { color: #19177C } /* Name.Variable */\n",
       ".output_html .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */\n",
       ".output_html .w { color: #bbbbbb } /* Text.Whitespace */\n",
       ".output_html .mb { color: #666666 } /* Literal.Number.Bin */\n",
       ".output_html .mf { color: #666666 } /* Literal.Number.Float */\n",
       ".output_html .mh { color: #666666 } /* Literal.Number.Hex */\n",
       ".output_html .mi { color: #666666 } /* Literal.Number.Integer */\n",
       ".output_html .mo { color: #666666 } /* Literal.Number.Oct */\n",
       ".output_html .sa { color: #BA2121 } /* Literal.String.Affix */\n",
       ".output_html .sb { color: #BA2121 } /* Literal.String.Backtick */\n",
       ".output_html .sc { color: #BA2121 } /* Literal.String.Char */\n",
       ".output_html .dl { color: #BA2121 } /* Literal.String.Delimiter */\n",
       ".output_html .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n",
       ".output_html .s2 { color: #BA2121 } /* Literal.String.Double */\n",
       ".output_html .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */\n",
       ".output_html .sh { color: #BA2121 } /* Literal.String.Heredoc */\n",
       ".output_html .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */\n",
       ".output_html .sx { color: #008000 } /* Literal.String.Other */\n",
       ".output_html .sr { color: #BB6688 } /* Literal.String.Regex */\n",
       ".output_html .s1 { color: #BA2121 } /* Literal.String.Single */\n",
       ".output_html .ss { color: #19177C } /* Literal.String.Symbol */\n",
       ".output_html .bp { color: #008000 } /* Name.Builtin.Pseudo */\n",
       ".output_html .fm { color: #0000FF } /* Name.Function.Magic */\n",
       ".output_html .vc { color: #19177C } /* Name.Variable.Class */\n",
       ".output_html .vg { color: #19177C } /* Name.Variable.Global */\n",
       ".output_html .vi { color: #19177C } /* Name.Variable.Instance */\n",
       ".output_html .vm { color: #19177C } /* Name.Variable.Magic */\n",
       ".output_html .il { color: #666666 } /* Literal.Number.Integer.Long */</style><div class=\"highlight\"><pre><span></span><span class=\"p\">[[</span><span class=\"s2\">&quot;Senpy is a wonderful service and I love it&quot;</span><span class=\"p\">]]</span>\n",
       "</pre></div>\n"
      ],
      "text/latex": [
       "\\begin{Verbatim}[commandchars=\\\\\\{\\}]\n",
       "\\PY{p}{[}\\PY{p}{[}\\PY{l+s+s2}{\\PYZdq{}Senpy is a wonderful service and I love it\\PYZdq{}}\\PY{p}{]}\\PY{p}{]}\n",
       "\\end{Verbatim}\n"
      ],
      "text/plain": [
       "[[\"Senpy is a wonderful service and I love it\"]]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "query(f'{endpoint}/emotion-anew',\n",
    "      input=\"Senpy is a wonderful service and I love it\",\n",
    "      emotionmodel=\"emoml:big6\",\n",
    "      fields='entries[].[[\"nif:isString\",\"onyx:hasEmotionSet\"[].\"onyx:hasEmotion\"[].\"onyx:hasEmotionCategory\"][]][]',\n",
    "      conversion=\"filtered\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Building pipelines"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You can query several senpy services in the same request.\n",
    "This feature is called pipelining, and the result of combining several plugins in a request is called a pipeline.\n",
    "\n",
    "The simplest way to use pipelines is to add every plugin you want to use to the URL, separated by either a slash or a comma.\n",
    "\n",
    "For instance, to get sentiment (`sentiment140`) and emotion (`depechemood`) annotations at the same time:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>.output_html .hll { background-color: #ffffcc }\n",
       ".output_html  { background: #f8f8f8; }\n",
       ".output_html .c { color: #408080; font-style: italic } /* Comment */\n",
       ".output_html .err { border: 1px solid #FF0000 } /* Error */\n",
       ".output_html .k { color: #008000; font-weight: bold } /* Keyword */\n",
       ".output_html .o { color: #666666 } /* Operator */\n",
       ".output_html .ch { color: #408080; font-style: italic } /* Comment.Hashbang */\n",
       ".output_html .cm { color: #408080; font-style: italic } /* Comment.Multiline */\n",
       ".output_html .cp { color: #BC7A00 } /* Comment.Preproc */\n",
       ".output_html .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */\n",
       ".output_html .c1 { color: #408080; font-style: italic } /* Comment.Single */\n",
       ".output_html .cs { color: #408080; font-style: italic } /* Comment.Special */\n",
       ".output_html .gd { color: #A00000 } /* Generic.Deleted */\n",
       ".output_html .ge { font-style: italic } /* Generic.Emph */\n",
       ".output_html .gr { color: #FF0000 } /* Generic.Error */\n",
       ".output_html .gh { color: #000080; font-weight: bold } /* Generic.Heading */\n",
       ".output_html .gi { color: #00A000 } /* Generic.Inserted */\n",
       ".output_html .go { color: #888888 } /* Generic.Output */\n",
       ".output_html .gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n",
       ".output_html .gs { font-weight: bold } /* Generic.Strong */\n",
       ".output_html .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n",
       ".output_html .gt { color: #0044DD } /* Generic.Traceback */\n",
       ".output_html .kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n",
       ".output_html .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n",
       ".output_html .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n",
       ".output_html .kp { color: #008000 } /* Keyword.Pseudo */\n",
       ".output_html .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n",
       ".output_html .kt { color: #B00040 } /* Keyword.Type */\n",
       ".output_html .m { color: #666666 } /* Literal.Number */\n",
       ".output_html .s { color: #BA2121 } /* Literal.String */\n",
       ".output_html .na { color: #7D9029 } /* Name.Attribute */\n",
       ".output_html .nb { color: #008000 } /* Name.Builtin */\n",
       ".output_html .nc { color: #0000FF; font-weight: bold } /* Name.Class */\n",
       ".output_html .no { color: #880000 } /* Name.Constant */\n",
       ".output_html .nd { color: #AA22FF } /* Name.Decorator */\n",
       ".output_html .ni { color: #999999; font-weight: bold } /* Name.Entity */\n",
       ".output_html .ne { color: #D2413A; font-weight: bold } /* Name.Exception */\n",
       ".output_html .nf { color: #0000FF } /* Name.Function */\n",
       ".output_html .nl { color: #A0A000 } /* Name.Label */\n",
       ".output_html .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */\n",
       ".output_html .nt { color: #008000; font-weight: bold } /* Name.Tag */\n",
       ".output_html .nv { color: #19177C } /* Name.Variable */\n",
       ".output_html .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */\n",
       ".output_html .w { color: #bbbbbb } /* Text.Whitespace */\n",
       ".output_html .mb { color: #666666 } /* Literal.Number.Bin */\n",
       ".output_html .mf { color: #666666 } /* Literal.Number.Float */\n",
       ".output_html .mh { color: #666666 } /* Literal.Number.Hex */\n",
       ".output_html .mi { color: #666666 } /* Literal.Number.Integer */\n",
       ".output_html .mo { color: #666666 } /* Literal.Number.Oct */\n",
       ".output_html .sa { color: #BA2121 } /* Literal.String.Affix */\n",
       ".output_html .sb { color: #BA2121 } /* Literal.String.Backtick */\n",
       ".output_html .sc { color: #BA2121 } /* Literal.String.Char */\n",
       ".output_html .dl { color: #BA2121 } /* Literal.String.Delimiter */\n",
       ".output_html .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n",
       ".output_html .s2 { color: #BA2121 } /* Literal.String.Double */\n",
       ".output_html .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */\n",
       ".output_html .sh { color: #BA2121 } /* Literal.String.Heredoc */\n",
       ".output_html .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */\n",
       ".output_html .sx { color: #008000 } /* Literal.String.Other */\n",
       ".output_html .sr { color: #BB6688 } /* Literal.String.Regex */\n",
       ".output_html .s1 { color: #BA2121 } /* Literal.String.Single */\n",
       ".output_html .ss { color: #19177C } /* Literal.String.Symbol */\n",
       ".output_html .bp { color: #008000 } /* Name.Builtin.Pseudo */\n",
       ".output_html .fm { color: #0000FF } /* Name.Function.Magic */\n",
       ".output_html .vc { color: #19177C } /* Name.Variable.Class */\n",
       ".output_html .vg { color: #19177C } /* Name.Variable.Global */\n",
       ".output_html .vi { color: #19177C } /* Name.Variable.Instance */\n",
       ".output_html .vm { color: #19177C } /* Name.Variable.Magic */\n",
       ".output_html .il { color: #666666 } /* Literal.Number.Integer.Long */</style><div class=\"highlight\"><pre><span></span><span class=\"p\">{</span>\n",
       "  <span class=\"nd\">&quot;@context&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;http://senpy.gsi.upm.es/api/contexts/YXBpL3NlbnRpbWVudDE0MC9lbW90aW9uLWRlcGVjaGVtb29kP2lucHV0PVNlbnB5K2lzK2Erd29uZGVyZnVsK3NlcnZpY2Uj&quot;</span><span class=\"p\">,</span>\n",
       "  <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Results&quot;</span><span class=\"p\">,</span>\n",
       "  <span class=\"nt\">&quot;entries&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "    <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;prefix:&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Entry&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;marl:hasOpinion&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Sentiment&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;marl:hasPolarity&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;marl:Neutral&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;prov:wasGeneratedBy&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;prefix:Analysis_1563369539.5176148&quot;</span>\n",
       "        <span class=\"p\">}</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;nif:isString&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Senpy is a wonderful service&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;onyx:hasEmotionSet&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;EmotionSet&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;onyx:hasEmotion&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"p\">{</span>\n",
       "              <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Emotion&quot;</span><span class=\"p\">,</span>\n",
       "              <span class=\"nt\">&quot;onyx:hasEmotionCategory&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;wna:negative-fear&quot;</span><span class=\"p\">,</span>\n",
       "              <span class=\"nt\">&quot;onyx:hasEmotionIntensity&quot;</span><span class=\"p\">:</span> <span class=\"mf\">0.06258366271018097</span>\n",
       "            <span class=\"p\">},</span>\n",
       "            <span class=\"p\">{</span>\n",
       "              <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Emotion&quot;</span><span class=\"p\">,</span>\n",
       "              <span class=\"nt\">&quot;onyx:hasEmotionCategory&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;wna:amusement&quot;</span><span class=\"p\">,</span>\n",
       "              <span class=\"nt\">&quot;onyx:hasEmotionIntensity&quot;</span><span class=\"p\">:</span> <span class=\"mf\">0.15784834034155437</span>\n",
       "            <span class=\"p\">},</span>\n",
       "            <span class=\"p\">{</span>\n",
       "              <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Emotion&quot;</span><span class=\"p\">,</span>\n",
       "              <span class=\"nt\">&quot;onyx:hasEmotionCategory&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;wna:anger&quot;</span><span class=\"p\">,</span>\n",
       "              <span class=\"nt\">&quot;onyx:hasEmotionIntensity&quot;</span><span class=\"p\">:</span> <span class=\"mf\">0.08728815135373413</span>\n",
       "            <span class=\"p\">},</span>\n",
       "            <span class=\"p\">{</span>\n",
       "              <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Emotion&quot;</span><span class=\"p\">,</span>\n",
       "              <span class=\"nt\">&quot;onyx:hasEmotionCategory&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;wna:annoyance&quot;</span><span class=\"p\">,</span>\n",
       "              <span class=\"nt\">&quot;onyx:hasEmotionIntensity&quot;</span><span class=\"p\">:</span> <span class=\"mf\">0.12184635680460143</span>\n",
       "            <span class=\"p\">},</span>\n",
       "            <span class=\"p\">{</span>\n",
       "              <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Emotion&quot;</span><span class=\"p\">,</span>\n",
       "              <span class=\"nt\">&quot;onyx:hasEmotionCategory&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;wna:indifference&quot;</span><span class=\"p\">,</span>\n",
       "              <span class=\"nt\">&quot;onyx:hasEmotionIntensity&quot;</span><span class=\"p\">:</span> <span class=\"mf\">0.1374081151031531</span>\n",
       "            <span class=\"p\">},</span>\n",
       "            <span class=\"p\">{</span>\n",
       "              <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Emotion&quot;</span><span class=\"p\">,</span>\n",
       "              <span class=\"nt\">&quot;onyx:hasEmotionCategory&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;wna:joy&quot;</span><span class=\"p\">,</span>\n",
       "              <span class=\"nt\">&quot;onyx:hasEmotionIntensity&quot;</span><span class=\"p\">:</span> <span class=\"mf\">0.12267040802346799</span>\n",
       "            <span class=\"p\">},</span>\n",
       "            <span class=\"p\">{</span>\n",
       "              <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Emotion&quot;</span><span class=\"p\">,</span>\n",
       "              <span class=\"nt\">&quot;onyx:hasEmotionCategory&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;wna:awe&quot;</span><span class=\"p\">,</span>\n",
       "              <span class=\"nt\">&quot;onyx:hasEmotionIntensity&quot;</span><span class=\"p\">:</span> <span class=\"mf\">0.21085262130713067</span>\n",
       "            <span class=\"p\">},</span>\n",
       "            <span class=\"p\">{</span>\n",
       "              <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Emotion&quot;</span><span class=\"p\">,</span>\n",
       "              <span class=\"nt\">&quot;onyx:hasEmotionCategory&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;wna:sadness&quot;</span><span class=\"p\">,</span>\n",
       "              <span class=\"nt\">&quot;onyx:hasEmotionIntensity&quot;</span><span class=\"p\">:</span> <span class=\"mf\">0.09950234435617733</span>\n",
       "            <span class=\"p\">}</span>\n",
       "          <span class=\"p\">],</span>\n",
       "          <span class=\"nt\">&quot;prov:wasGeneratedBy&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;prefix:Analysis_1563369539.5185866&quot;</span>\n",
       "        <span class=\"p\">}</span>\n",
       "      <span class=\"p\">]</span>\n",
       "    <span class=\"p\">}</span>\n",
       "  <span class=\"p\">]</span>\n",
       "<span class=\"p\">}</span>\n",
       "</pre></div>\n"
      ],
      "text/latex": [
       "\\begin{Verbatim}[commandchars=\\\\\\{\\}]\n",
       "\\PY{p}{\\PYZob{}}\n",
       "  \\PY{n+nd}{\\PYZdq{}@context\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}http://senpy.gsi.upm.es/api/contexts/YXBpL3NlbnRpbWVudDE0MC9lbW90aW9uLWRlcGVjaGVtb29kP2lucHV0PVNlbnB5K2lzK2Erd29uZGVyZnVsK3NlcnZpY2Uj\\PYZdq{}}\\PY{p}{,}\n",
       "  \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Results\\PYZdq{}}\\PY{p}{,}\n",
       "  \\PY{n+nt}{\\PYZdq{}entries\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "    \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}prefix:\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Entry\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}marl:hasOpinion\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Sentiment\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}marl:hasPolarity\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}marl:Neutral\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}prov:wasGeneratedBy\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}prefix:Analysis\\PYZus{}1563369539.5176148\\PYZdq{}}\n",
       "        \\PY{p}{\\PYZcb{}}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}nif:isString\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Senpy is a wonderful service\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}onyx:hasEmotionSet\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}EmotionSet\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}onyx:hasEmotion\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{p}{\\PYZob{}}\n",
       "              \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Emotion\\PYZdq{}}\\PY{p}{,}\n",
       "              \\PY{n+nt}{\\PYZdq{}onyx:hasEmotionCategory\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}wna:negative\\PYZhy{}fear\\PYZdq{}}\\PY{p}{,}\n",
       "              \\PY{n+nt}{\\PYZdq{}onyx:hasEmotionIntensity\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mf}{0.06258366271018097}\n",
       "            \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "            \\PY{p}{\\PYZob{}}\n",
       "              \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Emotion\\PYZdq{}}\\PY{p}{,}\n",
       "              \\PY{n+nt}{\\PYZdq{}onyx:hasEmotionCategory\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}wna:amusement\\PYZdq{}}\\PY{p}{,}\n",
       "              \\PY{n+nt}{\\PYZdq{}onyx:hasEmotionIntensity\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mf}{0.15784834034155437}\n",
       "            \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "            \\PY{p}{\\PYZob{}}\n",
       "              \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Emotion\\PYZdq{}}\\PY{p}{,}\n",
       "              \\PY{n+nt}{\\PYZdq{}onyx:hasEmotionCategory\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}wna:anger\\PYZdq{}}\\PY{p}{,}\n",
       "              \\PY{n+nt}{\\PYZdq{}onyx:hasEmotionIntensity\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mf}{0.08728815135373413}\n",
       "            \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "            \\PY{p}{\\PYZob{}}\n",
       "              \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Emotion\\PYZdq{}}\\PY{p}{,}\n",
       "              \\PY{n+nt}{\\PYZdq{}onyx:hasEmotionCategory\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}wna:annoyance\\PYZdq{}}\\PY{p}{,}\n",
       "              \\PY{n+nt}{\\PYZdq{}onyx:hasEmotionIntensity\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mf}{0.12184635680460143}\n",
       "            \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "            \\PY{p}{\\PYZob{}}\n",
       "              \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Emotion\\PYZdq{}}\\PY{p}{,}\n",
       "              \\PY{n+nt}{\\PYZdq{}onyx:hasEmotionCategory\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}wna:indifference\\PYZdq{}}\\PY{p}{,}\n",
       "              \\PY{n+nt}{\\PYZdq{}onyx:hasEmotionIntensity\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mf}{0.1374081151031531}\n",
       "            \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "            \\PY{p}{\\PYZob{}}\n",
       "              \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Emotion\\PYZdq{}}\\PY{p}{,}\n",
       "              \\PY{n+nt}{\\PYZdq{}onyx:hasEmotionCategory\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}wna:joy\\PYZdq{}}\\PY{p}{,}\n",
       "              \\PY{n+nt}{\\PYZdq{}onyx:hasEmotionIntensity\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mf}{0.12267040802346799}\n",
       "            \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "            \\PY{p}{\\PYZob{}}\n",
       "              \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Emotion\\PYZdq{}}\\PY{p}{,}\n",
       "              \\PY{n+nt}{\\PYZdq{}onyx:hasEmotionCategory\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}wna:awe\\PYZdq{}}\\PY{p}{,}\n",
       "              \\PY{n+nt}{\\PYZdq{}onyx:hasEmotionIntensity\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mf}{0.21085262130713067}\n",
       "            \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "            \\PY{p}{\\PYZob{}}\n",
       "              \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Emotion\\PYZdq{}}\\PY{p}{,}\n",
       "              \\PY{n+nt}{\\PYZdq{}onyx:hasEmotionCategory\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}wna:sadness\\PYZdq{}}\\PY{p}{,}\n",
       "              \\PY{n+nt}{\\PYZdq{}onyx:hasEmotionIntensity\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mf}{0.09950234435617733}\n",
       "            \\PY{p}{\\PYZcb{}}\n",
       "          \\PY{p}{]}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}prov:wasGeneratedBy\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}prefix:Analysis\\PYZus{}1563369539.5185866\\PYZdq{}}\n",
       "        \\PY{p}{\\PYZcb{}}\n",
       "      \\PY{p}{]}\n",
       "    \\PY{p}{\\PYZcb{}}\n",
       "  \\PY{p}{]}\n",
       "\\PY{p}{\\PYZcb{}}\n",
       "\\end{Verbatim}\n"
      ],
      "text/plain": [
       "{\n",
       "  \"@context\": \"http://senpy.gsi.upm.es/api/contexts/YXBpL3NlbnRpbWVudDE0MC9lbW90aW9uLWRlcGVjaGVtb29kP2lucHV0PVNlbnB5K2lzK2Erd29uZGVyZnVsK3NlcnZpY2Uj\",\n",
       "  \"@type\": \"Results\",\n",
       "  \"entries\": [\n",
       "    {\n",
       "      \"@id\": \"prefix:\",\n",
       "      \"@type\": \"Entry\",\n",
       "      \"marl:hasOpinion\": [\n",
       "        {\n",
       "          \"@type\": \"Sentiment\",\n",
       "          \"marl:hasPolarity\": \"marl:Neutral\",\n",
       "          \"prov:wasGeneratedBy\": \"prefix:Analysis_1563369539.5176148\"\n",
       "        }\n",
       "      ],\n",
       "      \"nif:isString\": \"Senpy is a wonderful service\",\n",
       "      \"onyx:hasEmotionSet\": [\n",
       "        {\n",
       "          \"@type\": \"EmotionSet\",\n",
       "          \"onyx:hasEmotion\": [\n",
       "            {\n",
       "              \"@type\": \"Emotion\",\n",
       "              \"onyx:hasEmotionCategory\": \"wna:negative-fear\",\n",
       "              \"onyx:hasEmotionIntensity\": 0.06258366271018097\n",
       "            },\n",
       "            {\n",
       "              \"@type\": \"Emotion\",\n",
       "              \"onyx:hasEmotionCategory\": \"wna:amusement\",\n",
       "              \"onyx:hasEmotionIntensity\": 0.15784834034155437\n",
       "            },\n",
       "            {\n",
       "              \"@type\": \"Emotion\",\n",
       "              \"onyx:hasEmotionCategory\": \"wna:anger\",\n",
       "              \"onyx:hasEmotionIntensity\": 0.08728815135373413\n",
       "            },\n",
       "            {\n",
       "              \"@type\": \"Emotion\",\n",
       "              \"onyx:hasEmotionCategory\": \"wna:annoyance\",\n",
       "              \"onyx:hasEmotionIntensity\": 0.12184635680460143\n",
       "            },\n",
       "            {\n",
       "              \"@type\": \"Emotion\",\n",
       "              \"onyx:hasEmotionCategory\": \"wna:indifference\",\n",
       "              \"onyx:hasEmotionIntensity\": 0.1374081151031531\n",
       "            },\n",
       "            {\n",
       "              \"@type\": \"Emotion\",\n",
       "              \"onyx:hasEmotionCategory\": \"wna:joy\",\n",
       "              \"onyx:hasEmotionIntensity\": 0.12267040802346799\n",
       "            },\n",
       "            {\n",
       "              \"@type\": \"Emotion\",\n",
       "              \"onyx:hasEmotionCategory\": \"wna:awe\",\n",
       "              \"onyx:hasEmotionIntensity\": 0.21085262130713067\n",
       "            },\n",
       "            {\n",
       "              \"@type\": \"Emotion\",\n",
       "              \"onyx:hasEmotionCategory\": \"wna:sadness\",\n",
       "              \"onyx:hasEmotionIntensity\": 0.09950234435617733\n",
       "            }\n",
       "          ],\n",
       "          \"prov:wasGeneratedBy\": \"prefix:Analysis_1563369539.5185866\"\n",
       "        }\n",
       "      ]\n",
       "    }\n",
       "  ]\n",
       "}"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "query(f'{endpoint}/sentiment140/emotion-depechemood',\n",
    "      input=\"Senpy is a wonderful service\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In a senpy pipeline, the call is processed by each plugin in sequence.\n",
    "The output of a plugin is used as input for the next one.\n",
    "\n",
    "Pipelines take the same parameters as the plugins they are made of.\n",
    "For example, if we want to split the original sentence before analysing its sentiment, we can use a pipeline made out of the `split` and the `sentiment140` plugins.\n",
    "\n",
    "`split` takes an extra parameter (`delimiter`) to select the type of splitting (by sentence or by paragraph), and `sentiment140` takes a `language` parameter.\n",
    "\n",
    "This is how the request looks like:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>.output_html .hll { background-color: #ffffcc }\n",
       ".output_html  { background: #f8f8f8; }\n",
       ".output_html .c { color: #408080; font-style: italic } /* Comment */\n",
       ".output_html .err { border: 1px solid #FF0000 } /* Error */\n",
       ".output_html .k { color: #008000; font-weight: bold } /* Keyword */\n",
       ".output_html .o { color: #666666 } /* Operator */\n",
       ".output_html .ch { color: #408080; font-style: italic } /* Comment.Hashbang */\n",
       ".output_html .cm { color: #408080; font-style: italic } /* Comment.Multiline */\n",
       ".output_html .cp { color: #BC7A00 } /* Comment.Preproc */\n",
       ".output_html .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */\n",
       ".output_html .c1 { color: #408080; font-style: italic } /* Comment.Single */\n",
       ".output_html .cs { color: #408080; font-style: italic } /* Comment.Special */\n",
       ".output_html .gd { color: #A00000 } /* Generic.Deleted */\n",
       ".output_html .ge { font-style: italic } /* Generic.Emph */\n",
       ".output_html .gr { color: #FF0000 } /* Generic.Error */\n",
       ".output_html .gh { color: #000080; font-weight: bold } /* Generic.Heading */\n",
       ".output_html .gi { color: #00A000 } /* Generic.Inserted */\n",
       ".output_html .go { color: #888888 } /* Generic.Output */\n",
       ".output_html .gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n",
       ".output_html .gs { font-weight: bold } /* Generic.Strong */\n",
       ".output_html .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n",
       ".output_html .gt { color: #0044DD } /* Generic.Traceback */\n",
       ".output_html .kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n",
       ".output_html .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n",
       ".output_html .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n",
       ".output_html .kp { color: #008000 } /* Keyword.Pseudo */\n",
       ".output_html .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n",
       ".output_html .kt { color: #B00040 } /* Keyword.Type */\n",
       ".output_html .m { color: #666666 } /* Literal.Number */\n",
       ".output_html .s { color: #BA2121 } /* Literal.String */\n",
       ".output_html .na { color: #7D9029 } /* Name.Attribute */\n",
       ".output_html .nb { color: #008000 } /* Name.Builtin */\n",
       ".output_html .nc { color: #0000FF; font-weight: bold } /* Name.Class */\n",
       ".output_html .no { color: #880000 } /* Name.Constant */\n",
       ".output_html .nd { color: #AA22FF } /* Name.Decorator */\n",
       ".output_html .ni { color: #999999; font-weight: bold } /* Name.Entity */\n",
       ".output_html .ne { color: #D2413A; font-weight: bold } /* Name.Exception */\n",
       ".output_html .nf { color: #0000FF } /* Name.Function */\n",
       ".output_html .nl { color: #A0A000 } /* Name.Label */\n",
       ".output_html .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */\n",
       ".output_html .nt { color: #008000; font-weight: bold } /* Name.Tag */\n",
       ".output_html .nv { color: #19177C } /* Name.Variable */\n",
       ".output_html .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */\n",
       ".output_html .w { color: #bbbbbb } /* Text.Whitespace */\n",
       ".output_html .mb { color: #666666 } /* Literal.Number.Bin */\n",
       ".output_html .mf { color: #666666 } /* Literal.Number.Float */\n",
       ".output_html .mh { color: #666666 } /* Literal.Number.Hex */\n",
       ".output_html .mi { color: #666666 } /* Literal.Number.Integer */\n",
       ".output_html .mo { color: #666666 } /* Literal.Number.Oct */\n",
       ".output_html .sa { color: #BA2121 } /* Literal.String.Affix */\n",
       ".output_html .sb { color: #BA2121 } /* Literal.String.Backtick */\n",
       ".output_html .sc { color: #BA2121 } /* Literal.String.Char */\n",
       ".output_html .dl { color: #BA2121 } /* Literal.String.Delimiter */\n",
       ".output_html .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n",
       ".output_html .s2 { color: #BA2121 } /* Literal.String.Double */\n",
       ".output_html .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */\n",
       ".output_html .sh { color: #BA2121 } /* Literal.String.Heredoc */\n",
       ".output_html .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */\n",
       ".output_html .sx { color: #008000 } /* Literal.String.Other */\n",
       ".output_html .sr { color: #BB6688 } /* Literal.String.Regex */\n",
       ".output_html .s1 { color: #BA2121 } /* Literal.String.Single */\n",
       ".output_html .ss { color: #19177C } /* Literal.String.Symbol */\n",
       ".output_html .bp { color: #008000 } /* Name.Builtin.Pseudo */\n",
       ".output_html .fm { color: #0000FF } /* Name.Function.Magic */\n",
       ".output_html .vc { color: #19177C } /* Name.Variable.Class */\n",
       ".output_html .vg { color: #19177C } /* Name.Variable.Global */\n",
       ".output_html .vi { color: #19177C } /* Name.Variable.Instance */\n",
       ".output_html .vm { color: #19177C } /* Name.Variable.Magic */\n",
       ".output_html .il { color: #666666 } /* Literal.Number.Integer.Long */</style><div class=\"highlight\"><pre><span></span><span class=\"p\">{</span>\n",
       "  <span class=\"nd\">&quot;@context&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;http://senpy.gsi.upm.es/api/contexts/YXBpL3NwbGl0L3NlbnRpbWVudDE0MD9pbnB1dD1TZW5weStpcythd2Vzb21lLitBbmQrc2VydmljZXMrYXJlK2NvbXBvc2FibGUuJmRlbGltaXRlcj1zZW50ZW5jZSZsYW5ndWFnZT1lbiZvdXRmb3JtYXQ9anNvbi1sZCM%3D&quot;</span><span class=\"p\">,</span>\n",
       "  <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Results&quot;</span><span class=\"p\">,</span>\n",
       "  <span class=\"nt\">&quot;entries&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "    <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;prefix:&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Entry&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;marl:hasOpinion&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Sentiment&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;marl:hasPolarity&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;marl:Positive&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;prov:wasGeneratedBy&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;prefix:Analysis_1563369539.7878842&quot;</span>\n",
       "        <span class=\"p\">}</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;nif:isString&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Senpy is awesome. And services are composable.&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;onyx:hasEmotionSet&quot;</span><span class=\"p\">:</span> <span class=\"p\">[]</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;prefix:#char=0,17&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Entry&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;marl:hasOpinion&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Sentiment&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;marl:hasPolarity&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;marl:Positive&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;prov:wasGeneratedBy&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;prefix:Analysis_1563369539.7878842&quot;</span>\n",
       "        <span class=\"p\">}</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;nif:isString&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Senpy is awesome.&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;onyx:hasEmotionSet&quot;</span><span class=\"p\">:</span> <span class=\"p\">[]</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;prefix:#char=18,46&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Entry&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;marl:hasOpinion&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Sentiment&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;marl:hasPolarity&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;marl:Neutral&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;prov:wasGeneratedBy&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;prefix:Analysis_1563369539.7878842&quot;</span>\n",
       "        <span class=\"p\">}</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;nif:isString&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;And services are composable.&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;onyx:hasEmotionSet&quot;</span><span class=\"p\">:</span> <span class=\"p\">[]</span>\n",
       "    <span class=\"p\">}</span>\n",
       "  <span class=\"p\">]</span>\n",
       "<span class=\"p\">}</span>\n",
       "</pre></div>\n"
      ],
      "text/latex": [
       "\\begin{Verbatim}[commandchars=\\\\\\{\\}]\n",
       "\\PY{p}{\\PYZob{}}\n",
       "  \\PY{n+nd}{\\PYZdq{}@context\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}http://senpy.gsi.upm.es/api/contexts/YXBpL3NwbGl0L3NlbnRpbWVudDE0MD9pbnB1dD1TZW5weStpcythd2Vzb21lLitBbmQrc2VydmljZXMrYXJlK2NvbXBvc2FibGUuJmRlbGltaXRlcj1zZW50ZW5jZSZsYW5ndWFnZT1lbiZvdXRmb3JtYXQ9anNvbi1sZCM\\PYZpc{}3D\\PYZdq{}}\\PY{p}{,}\n",
       "  \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Results\\PYZdq{}}\\PY{p}{,}\n",
       "  \\PY{n+nt}{\\PYZdq{}entries\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "    \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}prefix:\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Entry\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}marl:hasOpinion\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Sentiment\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}marl:hasPolarity\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}marl:Positive\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}prov:wasGeneratedBy\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}prefix:Analysis\\PYZus{}1563369539.7878842\\PYZdq{}}\n",
       "        \\PY{p}{\\PYZcb{}}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}nif:isString\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Senpy is awesome. And services are composable.\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}onyx:hasEmotionSet\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\\PY{p}{]}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}prefix:\\PYZsh{}char=0,17\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Entry\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}marl:hasOpinion\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Sentiment\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}marl:hasPolarity\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}marl:Positive\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}prov:wasGeneratedBy\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}prefix:Analysis\\PYZus{}1563369539.7878842\\PYZdq{}}\n",
       "        \\PY{p}{\\PYZcb{}}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}nif:isString\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Senpy is awesome.\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}onyx:hasEmotionSet\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\\PY{p}{]}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}prefix:\\PYZsh{}char=18,46\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Entry\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}marl:hasOpinion\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Sentiment\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}marl:hasPolarity\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}marl:Neutral\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}prov:wasGeneratedBy\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}prefix:Analysis\\PYZus{}1563369539.7878842\\PYZdq{}}\n",
       "        \\PY{p}{\\PYZcb{}}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}nif:isString\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}And services are composable.\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}onyx:hasEmotionSet\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\\PY{p}{]}\n",
       "    \\PY{p}{\\PYZcb{}}\n",
       "  \\PY{p}{]}\n",
       "\\PY{p}{\\PYZcb{}}\n",
       "\\end{Verbatim}\n"
      ],
      "text/plain": [
       "{\n",
       "  \"@context\": \"http://senpy.gsi.upm.es/api/contexts/YXBpL3NwbGl0L3NlbnRpbWVudDE0MD9pbnB1dD1TZW5weStpcythd2Vzb21lLitBbmQrc2VydmljZXMrYXJlK2NvbXBvc2FibGUuJmRlbGltaXRlcj1zZW50ZW5jZSZsYW5ndWFnZT1lbiZvdXRmb3JtYXQ9anNvbi1sZCM%3D\",\n",
       "  \"@type\": \"Results\",\n",
       "  \"entries\": [\n",
       "    {\n",
       "      \"@id\": \"prefix:\",\n",
       "      \"@type\": \"Entry\",\n",
       "      \"marl:hasOpinion\": [\n",
       "        {\n",
       "          \"@type\": \"Sentiment\",\n",
       "          \"marl:hasPolarity\": \"marl:Positive\",\n",
       "          \"prov:wasGeneratedBy\": \"prefix:Analysis_1563369539.7878842\"\n",
       "        }\n",
       "      ],\n",
       "      \"nif:isString\": \"Senpy is awesome. And services are composable.\",\n",
       "      \"onyx:hasEmotionSet\": []\n",
       "    },\n",
       "    {\n",
       "      \"@id\": \"prefix:#char=0,17\",\n",
       "      \"@type\": \"Entry\",\n",
       "      \"marl:hasOpinion\": [\n",
       "        {\n",
       "          \"@type\": \"Sentiment\",\n",
       "          \"marl:hasPolarity\": \"marl:Positive\",\n",
       "          \"prov:wasGeneratedBy\": \"prefix:Analysis_1563369539.7878842\"\n",
       "        }\n",
       "      ],\n",
       "      \"nif:isString\": \"Senpy is awesome.\",\n",
       "      \"onyx:hasEmotionSet\": []\n",
       "    },\n",
       "    {\n",
       "      \"@id\": \"prefix:#char=18,46\",\n",
       "      \"@type\": \"Entry\",\n",
       "      \"marl:hasOpinion\": [\n",
       "        {\n",
       "          \"@type\": \"Sentiment\",\n",
       "          \"marl:hasPolarity\": \"marl:Neutral\",\n",
       "          \"prov:wasGeneratedBy\": \"prefix:Analysis_1563369539.7878842\"\n",
       "        }\n",
       "      ],\n",
       "      \"nif:isString\": \"And services are composable.\",\n",
       "      \"onyx:hasEmotionSet\": []\n",
       "    }\n",
       "  ]\n",
       "}"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "query(f'{endpoint}/split/sentiment140',\n",
    "      input=\"Senpy is awesome. And services are composable.\", \n",
    "      delimiter=\"sentence\",\n",
    "      language=\"en\",\n",
    "      outformat=\"json-ld\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As you can see, `split` creates two new entries, which are also annotated by `sentiment140`."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Once again, we could use the `fields` parameter to get a list of strings and labels:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>.output_html .hll { background-color: #ffffcc }\n",
       ".output_html  { background: #f8f8f8; }\n",
       ".output_html .c { color: #408080; font-style: italic } /* Comment */\n",
       ".output_html .err { border: 1px solid #FF0000 } /* Error */\n",
       ".output_html .k { color: #008000; font-weight: bold } /* Keyword */\n",
       ".output_html .o { color: #666666 } /* Operator */\n",
       ".output_html .ch { color: #408080; font-style: italic } /* Comment.Hashbang */\n",
       ".output_html .cm { color: #408080; font-style: italic } /* Comment.Multiline */\n",
       ".output_html .cp { color: #BC7A00 } /* Comment.Preproc */\n",
       ".output_html .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */\n",
       ".output_html .c1 { color: #408080; font-style: italic } /* Comment.Single */\n",
       ".output_html .cs { color: #408080; font-style: italic } /* Comment.Special */\n",
       ".output_html .gd { color: #A00000 } /* Generic.Deleted */\n",
       ".output_html .ge { font-style: italic } /* Generic.Emph */\n",
       ".output_html .gr { color: #FF0000 } /* Generic.Error */\n",
       ".output_html .gh { color: #000080; font-weight: bold } /* Generic.Heading */\n",
       ".output_html .gi { color: #00A000 } /* Generic.Inserted */\n",
       ".output_html .go { color: #888888 } /* Generic.Output */\n",
       ".output_html .gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n",
       ".output_html .gs { font-weight: bold } /* Generic.Strong */\n",
       ".output_html .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n",
       ".output_html .gt { color: #0044DD } /* Generic.Traceback */\n",
       ".output_html .kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n",
       ".output_html .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n",
       ".output_html .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n",
       ".output_html .kp { color: #008000 } /* Keyword.Pseudo */\n",
       ".output_html .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n",
       ".output_html .kt { color: #B00040 } /* Keyword.Type */\n",
       ".output_html .m { color: #666666 } /* Literal.Number */\n",
       ".output_html .s { color: #BA2121 } /* Literal.String */\n",
       ".output_html .na { color: #7D9029 } /* Name.Attribute */\n",
       ".output_html .nb { color: #008000 } /* Name.Builtin */\n",
       ".output_html .nc { color: #0000FF; font-weight: bold } /* Name.Class */\n",
       ".output_html .no { color: #880000 } /* Name.Constant */\n",
       ".output_html .nd { color: #AA22FF } /* Name.Decorator */\n",
       ".output_html .ni { color: #999999; font-weight: bold } /* Name.Entity */\n",
       ".output_html .ne { color: #D2413A; font-weight: bold } /* Name.Exception */\n",
       ".output_html .nf { color: #0000FF } /* Name.Function */\n",
       ".output_html .nl { color: #A0A000 } /* Name.Label */\n",
       ".output_html .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */\n",
       ".output_html .nt { color: #008000; font-weight: bold } /* Name.Tag */\n",
       ".output_html .nv { color: #19177C } /* Name.Variable */\n",
       ".output_html .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */\n",
       ".output_html .w { color: #bbbbbb } /* Text.Whitespace */\n",
       ".output_html .mb { color: #666666 } /* Literal.Number.Bin */\n",
       ".output_html .mf { color: #666666 } /* Literal.Number.Float */\n",
       ".output_html .mh { color: #666666 } /* Literal.Number.Hex */\n",
       ".output_html .mi { color: #666666 } /* Literal.Number.Integer */\n",
       ".output_html .mo { color: #666666 } /* Literal.Number.Oct */\n",
       ".output_html .sa { color: #BA2121 } /* Literal.String.Affix */\n",
       ".output_html .sb { color: #BA2121 } /* Literal.String.Backtick */\n",
       ".output_html .sc { color: #BA2121 } /* Literal.String.Char */\n",
       ".output_html .dl { color: #BA2121 } /* Literal.String.Delimiter */\n",
       ".output_html .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n",
       ".output_html .s2 { color: #BA2121 } /* Literal.String.Double */\n",
       ".output_html .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */\n",
       ".output_html .sh { color: #BA2121 } /* Literal.String.Heredoc */\n",
       ".output_html .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */\n",
       ".output_html .sx { color: #008000 } /* Literal.String.Other */\n",
       ".output_html .sr { color: #BB6688 } /* Literal.String.Regex */\n",
       ".output_html .s1 { color: #BA2121 } /* Literal.String.Single */\n",
       ".output_html .ss { color: #19177C } /* Literal.String.Symbol */\n",
       ".output_html .bp { color: #008000 } /* Name.Builtin.Pseudo */\n",
       ".output_html .fm { color: #0000FF } /* Name.Function.Magic */\n",
       ".output_html .vc { color: #19177C } /* Name.Variable.Class */\n",
       ".output_html .vg { color: #19177C } /* Name.Variable.Global */\n",
       ".output_html .vi { color: #19177C } /* Name.Variable.Instance */\n",
       ".output_html .vm { color: #19177C } /* Name.Variable.Magic */\n",
       ".output_html .il { color: #666666 } /* Literal.Number.Integer.Long */</style><div class=\"highlight\"><pre><span></span><span class=\"p\">[[</span><span class=\"s2\">&quot;Senpy is awesome. And services are composable.&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;marl:Positive&quot;</span><span class=\"p\">],</span> <span class=\"p\">[</span><span class=\"s2\">&quot;Senpy is awesome.&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;marl:Positive&quot;</span><span class=\"p\">],</span> <span class=\"p\">[</span><span class=\"s2\">&quot;And services are composable.&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;marl:Neutral&quot;</span><span class=\"p\">]]</span>\n",
       "</pre></div>\n"
      ],
      "text/latex": [
       "\\begin{Verbatim}[commandchars=\\\\\\{\\}]\n",
       "\\PY{p}{[}\\PY{p}{[}\\PY{l+s+s2}{\\PYZdq{}Senpy is awesome. And services are composable.\\PYZdq{}}\\PY{p}{,} \\PY{l+s+s2}{\\PYZdq{}marl:Positive\\PYZdq{}}\\PY{p}{]}\\PY{p}{,} \\PY{p}{[}\\PY{l+s+s2}{\\PYZdq{}Senpy is awesome.\\PYZdq{}}\\PY{p}{,} \\PY{l+s+s2}{\\PYZdq{}marl:Positive\\PYZdq{}}\\PY{p}{]}\\PY{p}{,} \\PY{p}{[}\\PY{l+s+s2}{\\PYZdq{}And services are composable.\\PYZdq{}}\\PY{p}{,} \\PY{l+s+s2}{\\PYZdq{}marl:Neutral\\PYZdq{}}\\PY{p}{]}\\PY{p}{]}\n",
       "\\end{Verbatim}\n"
      ],
      "text/plain": [
       "[[\"Senpy is awesome. And services are composable.\", \"marl:Positive\"], [\"Senpy is awesome.\", \"marl:Positive\"], [\"And services are composable.\", \"marl:Neutral\"]]"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "query(f'{endpoint}/split/sentiment140',\n",
    "      input=\"Senpy is awesome. And services are composable.\", \n",
    "      delimiter=\"sentence\",\n",
    "      fields='entries[].[[\"nif:isString\",\"marl:hasOpinion\"[].\"marl:hasPolarity\"][]][]',\n",
    "      language=\"en\",\n",
    "      outformat=\"json-ld\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Listing services"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You can get a complete list of plugins in a senpy instance through the API:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>.output_html .hll { background-color: #ffffcc }\n",
       ".output_html  { background: #f8f8f8; }\n",
       ".output_html .c { color: #408080; font-style: italic } /* Comment */\n",
       ".output_html .err { border: 1px solid #FF0000 } /* Error */\n",
       ".output_html .k { color: #008000; font-weight: bold } /* Keyword */\n",
       ".output_html .o { color: #666666 } /* Operator */\n",
       ".output_html .ch { color: #408080; font-style: italic } /* Comment.Hashbang */\n",
       ".output_html .cm { color: #408080; font-style: italic } /* Comment.Multiline */\n",
       ".output_html .cp { color: #BC7A00 } /* Comment.Preproc */\n",
       ".output_html .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */\n",
       ".output_html .c1 { color: #408080; font-style: italic } /* Comment.Single */\n",
       ".output_html .cs { color: #408080; font-style: italic } /* Comment.Special */\n",
       ".output_html .gd { color: #A00000 } /* Generic.Deleted */\n",
       ".output_html .ge { font-style: italic } /* Generic.Emph */\n",
       ".output_html .gr { color: #FF0000 } /* Generic.Error */\n",
       ".output_html .gh { color: #000080; font-weight: bold } /* Generic.Heading */\n",
       ".output_html .gi { color: #00A000 } /* Generic.Inserted */\n",
       ".output_html .go { color: #888888 } /* Generic.Output */\n",
       ".output_html .gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n",
       ".output_html .gs { font-weight: bold } /* Generic.Strong */\n",
       ".output_html .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n",
       ".output_html .gt { color: #0044DD } /* Generic.Traceback */\n",
       ".output_html .kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n",
       ".output_html .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n",
       ".output_html .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n",
       ".output_html .kp { color: #008000 } /* Keyword.Pseudo */\n",
       ".output_html .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n",
       ".output_html .kt { color: #B00040 } /* Keyword.Type */\n",
       ".output_html .m { color: #666666 } /* Literal.Number */\n",
       ".output_html .s { color: #BA2121 } /* Literal.String */\n",
       ".output_html .na { color: #7D9029 } /* Name.Attribute */\n",
       ".output_html .nb { color: #008000 } /* Name.Builtin */\n",
       ".output_html .nc { color: #0000FF; font-weight: bold } /* Name.Class */\n",
       ".output_html .no { color: #880000 } /* Name.Constant */\n",
       ".output_html .nd { color: #AA22FF } /* Name.Decorator */\n",
       ".output_html .ni { color: #999999; font-weight: bold } /* Name.Entity */\n",
       ".output_html .ne { color: #D2413A; font-weight: bold } /* Name.Exception */\n",
       ".output_html .nf { color: #0000FF } /* Name.Function */\n",
       ".output_html .nl { color: #A0A000 } /* Name.Label */\n",
       ".output_html .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */\n",
       ".output_html .nt { color: #008000; font-weight: bold } /* Name.Tag */\n",
       ".output_html .nv { color: #19177C } /* Name.Variable */\n",
       ".output_html .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */\n",
       ".output_html .w { color: #bbbbbb } /* Text.Whitespace */\n",
       ".output_html .mb { color: #666666 } /* Literal.Number.Bin */\n",
       ".output_html .mf { color: #666666 } /* Literal.Number.Float */\n",
       ".output_html .mh { color: #666666 } /* Literal.Number.Hex */\n",
       ".output_html .mi { color: #666666 } /* Literal.Number.Integer */\n",
       ".output_html .mo { color: #666666 } /* Literal.Number.Oct */\n",
       ".output_html .sa { color: #BA2121 } /* Literal.String.Affix */\n",
       ".output_html .sb { color: #BA2121 } /* Literal.String.Backtick */\n",
       ".output_html .sc { color: #BA2121 } /* Literal.String.Char */\n",
       ".output_html .dl { color: #BA2121 } /* Literal.String.Delimiter */\n",
       ".output_html .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n",
       ".output_html .s2 { color: #BA2121 } /* Literal.String.Double */\n",
       ".output_html .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */\n",
       ".output_html .sh { color: #BA2121 } /* Literal.String.Heredoc */\n",
       ".output_html .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */\n",
       ".output_html .sx { color: #008000 } /* Literal.String.Other */\n",
       ".output_html .sr { color: #BB6688 } /* Literal.String.Regex */\n",
       ".output_html .s1 { color: #BA2121 } /* Literal.String.Single */\n",
       ".output_html .ss { color: #19177C } /* Literal.String.Symbol */\n",
       ".output_html .bp { color: #008000 } /* Name.Builtin.Pseudo */\n",
       ".output_html .fm { color: #0000FF } /* Name.Function.Magic */\n",
       ".output_html .vc { color: #19177C } /* Name.Variable.Class */\n",
       ".output_html .vg { color: #19177C } /* Name.Variable.Global */\n",
       ".output_html .vi { color: #19177C } /* Name.Variable.Instance */\n",
       ".output_html .vm { color: #19177C } /* Name.Variable.Magic */\n",
       ".output_html .il { color: #666666 } /* Literal.Number.Integer.Long */</style><div class=\"highlight\"><pre><span></span><span class=\"p\">{</span>\n",
       "  <span class=\"nd\">&quot;@context&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;http://senpy.gsi.upm.es/api/contexts/YXBpL3BsdWdpbnMvPyM%3D&quot;</span><span class=\"p\">,</span>\n",
       "  <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Plugins&quot;</span><span class=\"p\">,</span>\n",
       "  <span class=\"nt\">&quot;plugins&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "    <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;endpoint:plugins/emotion-anew_0.5.1&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;EmotionPlugin&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;author&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;@icorcuera&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;This plugin consists on an emotion classifier using ANEW lexicon dictionary to calculate VAD (valence-arousal-dominance) of the sentence and determinate which emotion is closer to this value. Each emotion has a centroid, calculated according to this article: http://www.aclweb.org/anthology/W10-0208. The plugin is going to look for the words in the sentence that appear in the ANEW dictionary and calculate the average VAD score for the sentence. Once this score is calculated, it is going to seek the emotion that is closest to this value.&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;extra_params&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "        <span class=\"nt\">&quot;language&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "          <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"s2\">&quot;language&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;l&quot;</span>\n",
       "          <span class=\"p\">],</span>\n",
       "          <span class=\"nt\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;en&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;language of the input&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;options&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"s2\">&quot;es&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;en&quot;</span>\n",
       "          <span class=\"p\">],</span>\n",
       "          <span class=\"nt\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span>\n",
       "        <span class=\"p\">}</span>\n",
       "      <span class=\"p\">},</span>\n",
       "      <span class=\"nt\">&quot;is_activated&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;maxEmotionValue&quot;</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;minEmotionValue&quot;</span><span class=\"p\">:</span> <span class=\"mi\">0</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;emotion-anew&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;version&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;0.5.1&quot;</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;endpoint:plugins/emotion-depechemood_0.1&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;EmotionPlugin&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;author&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Oscar Araque&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;\\nPlugin that uses the DepecheMood emotion lexicon.\\n\\nDepecheMood is an emotion lexicon automatically generated from news articles where users expressed their associated emotions. It contains two languages (English and Italian), as well as three types of word representations (token, lemma and lemma#PoS). For English, the lexicon contains 165k tokens, while the Italian version contains 116k. Unsupervised techniques can be applied to generate simple but effective baselines. To learn more, please visit https://github.com/marcoguerini/DepecheMood and http://www.depechemood.eu/\\n&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;extra_params&quot;</span><span class=\"p\">:</span> <span class=\"p\">{},</span>\n",
       "      <span class=\"nt\">&quot;is_activated&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;maxEmotionValue&quot;</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;minEmotionValue&quot;</span><span class=\"p\">:</span> <span class=\"mi\">0</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;emotion-depechemood&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;version&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;0.1&quot;</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;endpoint:plugins/emotion-wnaffect_0.2&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;EmotionPlugin&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;author&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"s2\">&quot;@icorcuera&quot;</span><span class=\"p\">,</span>\n",
       "        <span class=\"s2\">&quot;@balkian&quot;</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;\\nEmotion classifier using WordNet-Affect to calculate the percentage\\nof each emotion. This plugin classifies among 6 emotions: anger,fear,disgust,joy,sadness\\nor neutral. The only available language is English (en)\\n&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;extra_params&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "        <span class=\"nt\">&quot;language&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;lang_wnaffect&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"s2\">&quot;language&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;l&quot;</span>\n",
       "          <span class=\"p\">],</span>\n",
       "          <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;language of the input&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;options&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"s2\">&quot;en&quot;</span>\n",
       "          <span class=\"p\">],</span>\n",
       "          <span class=\"nt\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span>\n",
       "        <span class=\"p\">}</span>\n",
       "      <span class=\"p\">},</span>\n",
       "      <span class=\"nt\">&quot;is_activated&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;maxEmotionValue&quot;</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;minEmotionValue&quot;</span><span class=\"p\">:</span> <span class=\"mi\">0</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;emotion-wnaffect&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;version&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;0.2&quot;</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;endpoint:plugins/example-plugin_0.1&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Plugin&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;author&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;@balkian&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;A *VERY* simple plugin that exemplifies the development of Senpy Plugins&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;extra_params&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "        <span class=\"nt\">&quot;parameter&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;parameter&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"s2\">&quot;parameter&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;param&quot;</span>\n",
       "          <span class=\"p\">],</span>\n",
       "          <span class=\"nt\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"mi\">42</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;this parameter does nothing, it is only an example&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span>\n",
       "        <span class=\"p\">}</span>\n",
       "      <span class=\"p\">},</span>\n",
       "      <span class=\"nt\">&quot;is_activated&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;example-plugin&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;version&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;0.1&quot;</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;endpoint:plugins/sentiment-basic_0.1.1&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;SentimentPlugin&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;author&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;github.com/nachtkatze&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;\\nSentiment classifier using rule-based classification for Spanish. Based on english to spanish translation and SentiWordNet sentiment knowledge. This is a demo plugin that uses only some features from the TASS 2015 classifier. To use the entirely functional classifier you can use the service in: http://senpy.cluster.gsi.dit.upm.es.\\n&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;extra_params&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "        <span class=\"nt\">&quot;language&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "          <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"s2\">&quot;language&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;l&quot;</span>\n",
       "          <span class=\"p\">],</span>\n",
       "          <span class=\"nt\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;en&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;language of the text&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;options&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"s2\">&quot;en&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;es&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;it&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;fr&quot;</span>\n",
       "          <span class=\"p\">],</span>\n",
       "          <span class=\"nt\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span>\n",
       "        <span class=\"p\">}</span>\n",
       "      <span class=\"p\">},</span>\n",
       "      <span class=\"nt\">&quot;is_activated&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;maxPolarityValue&quot;</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;minPolarityValue&quot;</span><span class=\"p\">:</span> <span class=\"mi\">-1</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;sentiment-basic&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;version&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;0.1.1&quot;</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;endpoint:plugins/sentiment-meaningcloud_1.1&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;SentimentPlugin&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;author&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;GSI UPM&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;\\nSentiment analysis with meaningCloud service.\\nTo use this plugin, you need to obtain an API key from meaningCloud signing up here:\\nhttps://www.meaningcloud.com/developer/login\\n\\nWhen you had obtained the meaningCloud API Key, you have to provide it to the plugin, using param apiKey.\\nExample request:\\n\\nhttp://senpy.cluster.gsi.dit.upm.es/api/?algo=meaningCloud&amp;language=en&amp;apiKey=YOUR_API_KEY&amp;input=I%20love%20Madrid.\\n&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;extra_params&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "        <span class=\"nt\">&quot;apikey&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "          <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"s2\">&quot;apiKey&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;meaningcloud-key&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;meaningcloud-apikey&quot;</span>\n",
       "          <span class=\"p\">],</span>\n",
       "          <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;API key for the meaningcloud service. See https://www.meaningcloud.com/developer/login&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span>\n",
       "        <span class=\"p\">},</span>\n",
       "        <span class=\"nt\">&quot;language&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "          <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"s2\">&quot;language&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;l&quot;</span>\n",
       "          <span class=\"p\">],</span>\n",
       "          <span class=\"nt\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;auto&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;language of the input&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;options&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"s2\">&quot;en&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;es&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;ca&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;it&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;pt&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;fr&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;auto&quot;</span>\n",
       "          <span class=\"p\">],</span>\n",
       "          <span class=\"nt\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span>\n",
       "        <span class=\"p\">}</span>\n",
       "      <span class=\"p\">},</span>\n",
       "      <span class=\"nt\">&quot;is_activated&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;maxPolarityValue&quot;</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;minPolarityValue&quot;</span><span class=\"p\">:</span> <span class=\"mi\">-1</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;sentiment-meaningcloud&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;version&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;1.1&quot;</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;endpoint:plugins/sentiment-vader_0.1.1&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;SentimentPlugin&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;author&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;@icorcuera&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;\\nSentiment classifier using vaderSentiment module. Params accepted: Language: {en, es}. The output uses Marl ontology developed at GSI UPM for semantic web.\\n&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;extra_params&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "        <span class=\"nt\">&quot;aggregate&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "          <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"s2\">&quot;aggregate&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;agg&quot;</span>\n",
       "          <span class=\"p\">],</span>\n",
       "          <span class=\"nt\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"kc\">false</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Show only the strongest sentiment (aggregate) or all sentiments&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;options&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"kc\">true</span><span class=\"p\">,</span>\n",
       "            <span class=\"kc\">false</span>\n",
       "          <span class=\"p\">]</span>\n",
       "        <span class=\"p\">},</span>\n",
       "        <span class=\"nt\">&quot;language&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;lang_rand&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"s2\">&quot;language&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;l&quot;</span>\n",
       "          <span class=\"p\">],</span>\n",
       "          <span class=\"nt\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;auto&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;language of the input&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;options&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"s2\">&quot;es&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;en&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;auto&quot;</span>\n",
       "          <span class=\"p\">]</span>\n",
       "        <span class=\"p\">}</span>\n",
       "      <span class=\"p\">},</span>\n",
       "      <span class=\"nt\">&quot;is_activated&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;maxPolarityValue&quot;</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;minPolarityValue&quot;</span><span class=\"p\">:</span> <span class=\"mi\">0</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;sentiment-vader&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;version&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;0.1.1&quot;</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;endpoint:plugins/sentiment140_0.2&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;SentimentPlugin&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;author&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;@balkian&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Connects to the sentiment140 free API: http://sentiment140.com&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;extra_params&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "        <span class=\"nt\">&quot;language&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;lang_sentiment140&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"s2\">&quot;language&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;l&quot;</span>\n",
       "          <span class=\"p\">],</span>\n",
       "          <span class=\"nt\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;auto&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;language of the text&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;options&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"s2\">&quot;es&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;en&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;auto&quot;</span>\n",
       "          <span class=\"p\">],</span>\n",
       "          <span class=\"nt\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span>\n",
       "        <span class=\"p\">}</span>\n",
       "      <span class=\"p\">},</span>\n",
       "      <span class=\"nt\">&quot;is_activated&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;maxPolarityValue&quot;</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;minPolarityValue&quot;</span><span class=\"p\">:</span> <span class=\"mi\">0</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;sentiment140&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;url&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;https://github.com/gsi-upm/senpy-plugins-community&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;version&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;0.2&quot;</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;endpoint:plugins/split_0.3&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Plugin&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;author&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"s2\">&quot;@militarpancho&quot;</span><span class=\"p\">,</span>\n",
       "        <span class=\"s2\">&quot;@balkian&quot;</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;\\nA plugin that chunks input text, into paragraphs or sentences.\\n\\nIt does not provide any sort of annotation, and it is meant to precede\\nother annotation plugins, when the annotation of individual sentences\\n(or paragraphs) is required.\\n&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;extra_params&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "        <span class=\"nt\">&quot;delimiter&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "          <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"s2\">&quot;type&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;t&quot;</span>\n",
       "          <span class=\"p\">],</span>\n",
       "          <span class=\"nt\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;sentence&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Split text into paragraphs or sentences.&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;options&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"s2\">&quot;sentence&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;paragraph&quot;</span>\n",
       "          <span class=\"p\">],</span>\n",
       "          <span class=\"nt\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">false</span>\n",
       "        <span class=\"p\">}</span>\n",
       "      <span class=\"p\">},</span>\n",
       "      <span class=\"nt\">&quot;is_activated&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;split&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;url&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;https://github.com/gsi-upm/senpy&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;version&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;0.3&quot;</span>\n",
       "    <span class=\"p\">}</span>\n",
       "  <span class=\"p\">]</span>\n",
       "<span class=\"p\">}</span>\n",
       "</pre></div>\n"
      ],
      "text/latex": [
       "\\begin{Verbatim}[commandchars=\\\\\\{\\}]\n",
       "\\PY{p}{\\PYZob{}}\n",
       "  \\PY{n+nd}{\\PYZdq{}@context\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}http://senpy.gsi.upm.es/api/contexts/YXBpL3BsdWdpbnMvPyM\\PYZpc{}3D\\PYZdq{}}\\PY{p}{,}\n",
       "  \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Plugins\\PYZdq{}}\\PY{p}{,}\n",
       "  \\PY{n+nt}{\\PYZdq{}plugins\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "    \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}endpoint:plugins/emotion\\PYZhy{}anew\\PYZus{}0.5.1\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}EmotionPlugin\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}author\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}@icorcuera\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}This plugin consists on an emotion classifier using ANEW lexicon dictionary to calculate VAD (valence\\PYZhy{}arousal\\PYZhy{}dominance) of the sentence and determinate which emotion is closer to this value. Each emotion has a centroid, calculated according to this article: http://www.aclweb.org/anthology/W10\\PYZhy{}0208. The plugin is going to look for the words in the sentence that appear in the ANEW dictionary and calculate the average VAD score for the sentence. Once this score is calculated, it is going to seek the emotion that is closest to this value.\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}extra\\PYZus{}params\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "        \\PY{n+nt}{\\PYZdq{}language\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}language\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}l\\PYZdq{}}\n",
       "          \\PY{p}{]}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}default\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}en\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}language of the input\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}options\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}es\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}en\\PYZdq{}}\n",
       "          \\PY{p}{]}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}required\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\n",
       "        \\PY{p}{\\PYZcb{}}\n",
       "      \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}is\\PYZus{}activated\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}maxEmotionValue\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mi}{1}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}minEmotionValue\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mi}{0}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}name\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}emotion\\PYZhy{}anew\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}version\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}0.5.1\\PYZdq{}}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}endpoint:plugins/emotion\\PYZhy{}depechemood\\PYZus{}0.1\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}EmotionPlugin\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}author\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Oscar Araque\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}\\PYZbs{}nPlugin that uses the DepecheMood emotion lexicon.\\PYZbs{}n\\PYZbs{}nDepecheMood is an emotion lexicon automatically generated from news articles where users expressed their associated emotions. It contains two languages (English and Italian), as well as three types of word representations (token, lemma and lemma\\PYZsh{}PoS). For English, the lexicon contains 165k tokens, while the Italian version contains 116k. Unsupervised techniques can be applied to generate simple but effective baselines. To learn more, please visit https://github.com/marcoguerini/DepecheMood and http://www.depechemood.eu/\\PYZbs{}n\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}extra\\PYZus{}params\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}is\\PYZus{}activated\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}maxEmotionValue\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mi}{1}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}minEmotionValue\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mi}{0}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}name\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}emotion\\PYZhy{}depechemood\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}version\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}0.1\\PYZdq{}}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}endpoint:plugins/emotion\\PYZhy{}wnaffect\\PYZus{}0.2\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}EmotionPlugin\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}author\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}@icorcuera\\PYZdq{}}\\PY{p}{,}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}@balkian\\PYZdq{}}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}\\PYZbs{}nEmotion classifier using WordNet\\PYZhy{}Affect to calculate the percentage\\PYZbs{}nof each emotion. This plugin classifies among 6 emotions: anger,fear,disgust,joy,sadness\\PYZbs{}nor neutral. The only available language is English (en)\\PYZbs{}n\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}extra\\PYZus{}params\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "        \\PY{n+nt}{\\PYZdq{}language\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}lang\\PYZus{}wnaffect\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}language\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}l\\PYZdq{}}\n",
       "          \\PY{p}{]}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}language of the input\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}options\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}en\\PYZdq{}}\n",
       "          \\PY{p}{]}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}required\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\n",
       "        \\PY{p}{\\PYZcb{}}\n",
       "      \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}is\\PYZus{}activated\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}maxEmotionValue\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mi}{1}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}minEmotionValue\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mi}{0}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}name\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}emotion\\PYZhy{}wnaffect\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}version\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}0.2\\PYZdq{}}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}endpoint:plugins/example\\PYZhy{}plugin\\PYZus{}0.1\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Plugin\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}author\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}@balkian\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}A *VERY* simple plugin that exemplifies the development of Senpy Plugins\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}extra\\PYZus{}params\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "        \\PY{n+nt}{\\PYZdq{}parameter\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}parameter\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}parameter\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}param\\PYZdq{}}\n",
       "          \\PY{p}{]}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}default\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mi}{42}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}this parameter does nothing, it is only an example\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}required\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\n",
       "        \\PY{p}{\\PYZcb{}}\n",
       "      \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}is\\PYZus{}activated\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}name\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}example\\PYZhy{}plugin\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}version\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}0.1\\PYZdq{}}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}endpoint:plugins/sentiment\\PYZhy{}basic\\PYZus{}0.1.1\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}SentimentPlugin\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}author\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}github.com/nachtkatze\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}\\PYZbs{}nSentiment classifier using rule\\PYZhy{}based classification for Spanish. Based on english to spanish translation and SentiWordNet sentiment knowledge. This is a demo plugin that uses only some features from the TASS 2015 classifier. To use the entirely functional classifier you can use the service in: http://senpy.cluster.gsi.dit.upm.es.\\PYZbs{}n\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}extra\\PYZus{}params\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "        \\PY{n+nt}{\\PYZdq{}language\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}language\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}l\\PYZdq{}}\n",
       "          \\PY{p}{]}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}default\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}en\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}language of the text\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}options\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}en\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}es\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}it\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}fr\\PYZdq{}}\n",
       "          \\PY{p}{]}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}required\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\n",
       "        \\PY{p}{\\PYZcb{}}\n",
       "      \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}is\\PYZus{}activated\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}maxPolarityValue\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mi}{1}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}minPolarityValue\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mi}{\\PYZhy{}1}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}name\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}sentiment\\PYZhy{}basic\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}version\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}0.1.1\\PYZdq{}}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}endpoint:plugins/sentiment\\PYZhy{}meaningcloud\\PYZus{}1.1\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}SentimentPlugin\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}author\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}GSI UPM\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}\\PYZbs{}nSentiment analysis with meaningCloud service.\\PYZbs{}nTo use this plugin, you need to obtain an API key from meaningCloud signing up here:\\PYZbs{}nhttps://www.meaningcloud.com/developer/login\\PYZbs{}n\\PYZbs{}nWhen you had obtained the meaningCloud API Key, you have to provide it to the plugin, using param apiKey.\\PYZbs{}nExample request:\\PYZbs{}n\\PYZbs{}nhttp://senpy.cluster.gsi.dit.upm.es/api/?algo=meaningCloud\\PYZam{}language=en\\PYZam{}apiKey=YOUR\\PYZus{}API\\PYZus{}KEY\\PYZam{}input=I\\PYZpc{}20love\\PYZpc{}20Madrid.\\PYZbs{}n\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}extra\\PYZus{}params\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "        \\PY{n+nt}{\\PYZdq{}apikey\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}apiKey\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}meaningcloud\\PYZhy{}key\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}meaningcloud\\PYZhy{}apikey\\PYZdq{}}\n",
       "          \\PY{p}{]}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}API key for the meaningcloud service. See https://www.meaningcloud.com/developer/login\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}required\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\n",
       "        \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "        \\PY{n+nt}{\\PYZdq{}language\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}language\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}l\\PYZdq{}}\n",
       "          \\PY{p}{]}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}default\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}auto\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}language of the input\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}options\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}en\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}es\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}ca\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}it\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}pt\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}fr\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}auto\\PYZdq{}}\n",
       "          \\PY{p}{]}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}required\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\n",
       "        \\PY{p}{\\PYZcb{}}\n",
       "      \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}is\\PYZus{}activated\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}maxPolarityValue\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mi}{1}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}minPolarityValue\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mi}{\\PYZhy{}1}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}name\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}sentiment\\PYZhy{}meaningcloud\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}version\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}1.1\\PYZdq{}}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}endpoint:plugins/sentiment\\PYZhy{}vader\\PYZus{}0.1.1\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}SentimentPlugin\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}author\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}@icorcuera\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}\\PYZbs{}nSentiment classifier using vaderSentiment module. Params accepted: Language: \\PYZob{}en, es\\PYZcb{}. The output uses Marl ontology developed at GSI UPM for semantic web.\\PYZbs{}n\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}extra\\PYZus{}params\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "        \\PY{n+nt}{\\PYZdq{}aggregate\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}aggregate\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}agg\\PYZdq{}}\n",
       "          \\PY{p}{]}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}default\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{false}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Show only the strongest sentiment (aggregate) or all sentiments\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}options\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{k+kc}{true}\\PY{p}{,}\n",
       "            \\PY{k+kc}{false}\n",
       "          \\PY{p}{]}\n",
       "        \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "        \\PY{n+nt}{\\PYZdq{}language\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}lang\\PYZus{}rand\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}language\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}l\\PYZdq{}}\n",
       "          \\PY{p}{]}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}default\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}auto\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}language of the input\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}options\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}es\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}en\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}auto\\PYZdq{}}\n",
       "          \\PY{p}{]}\n",
       "        \\PY{p}{\\PYZcb{}}\n",
       "      \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}is\\PYZus{}activated\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}maxPolarityValue\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mi}{1}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}minPolarityValue\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mi}{0}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}name\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}sentiment\\PYZhy{}vader\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}version\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}0.1.1\\PYZdq{}}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}endpoint:plugins/sentiment140\\PYZus{}0.2\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}SentimentPlugin\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}author\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}@balkian\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Connects to the sentiment140 free API: http://sentiment140.com\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}extra\\PYZus{}params\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "        \\PY{n+nt}{\\PYZdq{}language\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}lang\\PYZus{}sentiment140\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}language\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}l\\PYZdq{}}\n",
       "          \\PY{p}{]}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}default\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}auto\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}language of the text\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}options\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}es\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}en\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}auto\\PYZdq{}}\n",
       "          \\PY{p}{]}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}required\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\n",
       "        \\PY{p}{\\PYZcb{}}\n",
       "      \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}is\\PYZus{}activated\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}maxPolarityValue\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mi}{1}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}minPolarityValue\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mi}{0}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}name\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}sentiment140\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}url\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}https://github.com/gsi\\PYZhy{}upm/senpy\\PYZhy{}plugins\\PYZhy{}community\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}version\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}0.2\\PYZdq{}}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}endpoint:plugins/split\\PYZus{}0.3\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Plugin\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}author\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}@militarpancho\\PYZdq{}}\\PY{p}{,}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}@balkian\\PYZdq{}}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}\\PYZbs{}nA plugin that chunks input text, into paragraphs or sentences.\\PYZbs{}n\\PYZbs{}nIt does not provide any sort of annotation, and it is meant to precede\\PYZbs{}nother annotation plugins, when the annotation of individual sentences\\PYZbs{}n(or paragraphs) is required.\\PYZbs{}n\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}extra\\PYZus{}params\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "        \\PY{n+nt}{\\PYZdq{}delimiter\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}type\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}t\\PYZdq{}}\n",
       "          \\PY{p}{]}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}default\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}sentence\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Split text into paragraphs or sentences.\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}options\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}sentence\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}paragraph\\PYZdq{}}\n",
       "          \\PY{p}{]}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}required\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{false}\n",
       "        \\PY{p}{\\PYZcb{}}\n",
       "      \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}is\\PYZus{}activated\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}name\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}split\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}url\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}https://github.com/gsi\\PYZhy{}upm/senpy\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}version\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}0.3\\PYZdq{}}\n",
       "    \\PY{p}{\\PYZcb{}}\n",
       "  \\PY{p}{]}\n",
       "\\PY{p}{\\PYZcb{}}\n",
       "\\end{Verbatim}\n"
      ],
      "text/plain": [
       "{\n",
       "  \"@context\": \"http://senpy.gsi.upm.es/api/contexts/YXBpL3BsdWdpbnMvPyM%3D\",\n",
       "  \"@type\": \"Plugins\",\n",
       "  \"plugins\": [\n",
       "    {\n",
       "      \"@id\": \"endpoint:plugins/emotion-anew_0.5.1\",\n",
       "      \"@type\": \"EmotionPlugin\",\n",
       "      \"author\": \"@icorcuera\",\n",
       "      \"description\": \"This plugin consists on an emotion classifier using ANEW lexicon dictionary to calculate VAD (valence-arousal-dominance) of the sentence and determinate which emotion is closer to this value. Each emotion has a centroid, calculated according to this article: http://www.aclweb.org/anthology/W10-0208. The plugin is going to look for the words in the sentence that appear in the ANEW dictionary and calculate the average VAD score for the sentence. Once this score is calculated, it is going to seek the emotion that is closest to this value.\",\n",
       "      \"extra_params\": {\n",
       "        \"language\": {\n",
       "          \"aliases\": [\n",
       "            \"language\",\n",
       "            \"l\"\n",
       "          ],\n",
       "          \"default\": \"en\",\n",
       "          \"description\": \"language of the input\",\n",
       "          \"options\": [\n",
       "            \"es\",\n",
       "            \"en\"\n",
       "          ],\n",
       "          \"required\": true\n",
       "        }\n",
       "      },\n",
       "      \"is_activated\": true,\n",
       "      \"maxEmotionValue\": 1,\n",
       "      \"minEmotionValue\": 0,\n",
       "      \"name\": \"emotion-anew\",\n",
       "      \"version\": \"0.5.1\"\n",
       "    },\n",
       "    {\n",
       "      \"@id\": \"endpoint:plugins/emotion-depechemood_0.1\",\n",
       "      \"@type\": \"EmotionPlugin\",\n",
       "      \"author\": \"Oscar Araque\",\n",
       "      \"description\": \"\\nPlugin that uses the DepecheMood emotion lexicon.\\n\\nDepecheMood is an emotion lexicon automatically generated from news articles where users expressed their associated emotions. It contains two languages (English and Italian), as well as three types of word representations (token, lemma and lemma#PoS). For English, the lexicon contains 165k tokens, while the Italian version contains 116k. Unsupervised techniques can be applied to generate simple but effective baselines. To learn more, please visit https://github.com/marcoguerini/DepecheMood and http://www.depechemood.eu/\\n\",\n",
       "      \"extra_params\": {},\n",
       "      \"is_activated\": true,\n",
       "      \"maxEmotionValue\": 1,\n",
       "      \"minEmotionValue\": 0,\n",
       "      \"name\": \"emotion-depechemood\",\n",
       "      \"version\": \"0.1\"\n",
       "    },\n",
       "    {\n",
       "      \"@id\": \"endpoint:plugins/emotion-wnaffect_0.2\",\n",
       "      \"@type\": \"EmotionPlugin\",\n",
       "      \"author\": [\n",
       "        \"@icorcuera\",\n",
       "        \"@balkian\"\n",
       "      ],\n",
       "      \"description\": \"\\nEmotion classifier using WordNet-Affect to calculate the percentage\\nof each emotion. This plugin classifies among 6 emotions: anger,fear,disgust,joy,sadness\\nor neutral. The only available language is English (en)\\n\",\n",
       "      \"extra_params\": {\n",
       "        \"language\": {\n",
       "          \"@id\": \"lang_wnaffect\",\n",
       "          \"aliases\": [\n",
       "            \"language\",\n",
       "            \"l\"\n",
       "          ],\n",
       "          \"description\": \"language of the input\",\n",
       "          \"options\": [\n",
       "            \"en\"\n",
       "          ],\n",
       "          \"required\": true\n",
       "        }\n",
       "      },\n",
       "      \"is_activated\": true,\n",
       "      \"maxEmotionValue\": 1,\n",
       "      \"minEmotionValue\": 0,\n",
       "      \"name\": \"emotion-wnaffect\",\n",
       "      \"version\": \"0.2\"\n",
       "    },\n",
       "    {\n",
       "      \"@id\": \"endpoint:plugins/example-plugin_0.1\",\n",
       "      \"@type\": \"Plugin\",\n",
       "      \"author\": \"@balkian\",\n",
       "      \"description\": \"A *VERY* simple plugin that exemplifies the development of Senpy Plugins\",\n",
       "      \"extra_params\": {\n",
       "        \"parameter\": {\n",
       "          \"@id\": \"parameter\",\n",
       "          \"aliases\": [\n",
       "            \"parameter\",\n",
       "            \"param\"\n",
       "          ],\n",
       "          \"default\": 42,\n",
       "          \"description\": \"this parameter does nothing, it is only an example\",\n",
       "          \"required\": true\n",
       "        }\n",
       "      },\n",
       "      \"is_activated\": true,\n",
       "      \"name\": \"example-plugin\",\n",
       "      \"version\": \"0.1\"\n",
       "    },\n",
       "    {\n",
       "      \"@id\": \"endpoint:plugins/sentiment-basic_0.1.1\",\n",
       "      \"@type\": \"SentimentPlugin\",\n",
       "      \"author\": \"github.com/nachtkatze\",\n",
       "      \"description\": \"\\nSentiment classifier using rule-based classification for Spanish. Based on english to spanish translation and SentiWordNet sentiment knowledge. This is a demo plugin that uses only some features from the TASS 2015 classifier. To use the entirely functional classifier you can use the service in: http://senpy.cluster.gsi.dit.upm.es.\\n\",\n",
       "      \"extra_params\": {\n",
       "        \"language\": {\n",
       "          \"aliases\": [\n",
       "            \"language\",\n",
       "            \"l\"\n",
       "          ],\n",
       "          \"default\": \"en\",\n",
       "          \"description\": \"language of the text\",\n",
       "          \"options\": [\n",
       "            \"en\",\n",
       "            \"es\",\n",
       "            \"it\",\n",
       "            \"fr\"\n",
       "          ],\n",
       "          \"required\": true\n",
       "        }\n",
       "      },\n",
       "      \"is_activated\": true,\n",
       "      \"maxPolarityValue\": 1,\n",
       "      \"minPolarityValue\": -1,\n",
       "      \"name\": \"sentiment-basic\",\n",
       "      \"version\": \"0.1.1\"\n",
       "    },\n",
       "    {\n",
       "      \"@id\": \"endpoint:plugins/sentiment-meaningcloud_1.1\",\n",
       "      \"@type\": \"SentimentPlugin\",\n",
       "      \"author\": \"GSI UPM\",\n",
       "      \"description\": \"\\nSentiment analysis with meaningCloud service.\\nTo use this plugin, you need to obtain an API key from meaningCloud signing up here:\\nhttps://www.meaningcloud.com/developer/login\\n\\nWhen you had obtained the meaningCloud API Key, you have to provide it to the plugin, using param apiKey.\\nExample request:\\n\\nhttp://senpy.cluster.gsi.dit.upm.es/api/?algo=meaningCloud&language=en&apiKey=YOUR_API_KEY&input=I%20love%20Madrid.\\n\",\n",
       "      \"extra_params\": {\n",
       "        \"apikey\": {\n",
       "          \"aliases\": [\n",
       "            \"apiKey\",\n",
       "            \"meaningcloud-key\",\n",
       "            \"meaningcloud-apikey\"\n",
       "          ],\n",
       "          \"description\": \"API key for the meaningcloud service. See https://www.meaningcloud.com/developer/login\",\n",
       "          \"required\": true\n",
       "        },\n",
       "        \"language\": {\n",
       "          \"aliases\": [\n",
       "            \"language\",\n",
       "            \"l\"\n",
       "          ],\n",
       "          \"default\": \"auto\",\n",
       "          \"description\": \"language of the input\",\n",
       "          \"options\": [\n",
       "            \"en\",\n",
       "            \"es\",\n",
       "            \"ca\",\n",
       "            \"it\",\n",
       "            \"pt\",\n",
       "            \"fr\",\n",
       "            \"auto\"\n",
       "          ],\n",
       "          \"required\": true\n",
       "        }\n",
       "      },\n",
       "      \"is_activated\": true,\n",
       "      \"maxPolarityValue\": 1,\n",
       "      \"minPolarityValue\": -1,\n",
       "      \"name\": \"sentiment-meaningcloud\",\n",
       "      \"version\": \"1.1\"\n",
       "    },\n",
       "    {\n",
       "      \"@id\": \"endpoint:plugins/sentiment-vader_0.1.1\",\n",
       "      \"@type\": \"SentimentPlugin\",\n",
       "      \"author\": \"@icorcuera\",\n",
       "      \"description\": \"\\nSentiment classifier using vaderSentiment module. Params accepted: Language: {en, es}. The output uses Marl ontology developed at GSI UPM for semantic web.\\n\",\n",
       "      \"extra_params\": {\n",
       "        \"aggregate\": {\n",
       "          \"aliases\": [\n",
       "            \"aggregate\",\n",
       "            \"agg\"\n",
       "          ],\n",
       "          \"default\": false,\n",
       "          \"description\": \"Show only the strongest sentiment (aggregate) or all sentiments\",\n",
       "          \"options\": [\n",
       "            true,\n",
       "            false\n",
       "          ]\n",
       "        },\n",
       "        \"language\": {\n",
       "          \"@id\": \"lang_rand\",\n",
       "          \"aliases\": [\n",
       "            \"language\",\n",
       "            \"l\"\n",
       "          ],\n",
       "          \"default\": \"auto\",\n",
       "          \"description\": \"language of the input\",\n",
       "          \"options\": [\n",
       "            \"es\",\n",
       "            \"en\",\n",
       "            \"auto\"\n",
       "          ]\n",
       "        }\n",
       "      },\n",
       "      \"is_activated\": true,\n",
       "      \"maxPolarityValue\": 1,\n",
       "      \"minPolarityValue\": 0,\n",
       "      \"name\": \"sentiment-vader\",\n",
       "      \"version\": \"0.1.1\"\n",
       "    },\n",
       "    {\n",
       "      \"@id\": \"endpoint:plugins/sentiment140_0.2\",\n",
       "      \"@type\": \"SentimentPlugin\",\n",
       "      \"author\": \"@balkian\",\n",
       "      \"description\": \"Connects to the sentiment140 free API: http://sentiment140.com\",\n",
       "      \"extra_params\": {\n",
       "        \"language\": {\n",
       "          \"@id\": \"lang_sentiment140\",\n",
       "          \"aliases\": [\n",
       "            \"language\",\n",
       "            \"l\"\n",
       "          ],\n",
       "          \"default\": \"auto\",\n",
       "          \"description\": \"language of the text\",\n",
       "          \"options\": [\n",
       "            \"es\",\n",
       "            \"en\",\n",
       "            \"auto\"\n",
       "          ],\n",
       "          \"required\": true\n",
       "        }\n",
       "      },\n",
       "      \"is_activated\": true,\n",
       "      \"maxPolarityValue\": 1,\n",
       "      \"minPolarityValue\": 0,\n",
       "      \"name\": \"sentiment140\",\n",
       "      \"url\": \"https://github.com/gsi-upm/senpy-plugins-community\",\n",
       "      \"version\": \"0.2\"\n",
       "    },\n",
       "    {\n",
       "      \"@id\": \"endpoint:plugins/split_0.3\",\n",
       "      \"@type\": \"Plugin\",\n",
       "      \"author\": [\n",
       "        \"@militarpancho\",\n",
       "        \"@balkian\"\n",
       "      ],\n",
       "      \"description\": \"\\nA plugin that chunks input text, into paragraphs or sentences.\\n\\nIt does not provide any sort of annotation, and it is meant to precede\\nother annotation plugins, when the annotation of individual sentences\\n(or paragraphs) is required.\\n\",\n",
       "      \"extra_params\": {\n",
       "        \"delimiter\": {\n",
       "          \"aliases\": [\n",
       "            \"type\",\n",
       "            \"t\"\n",
       "          ],\n",
       "          \"default\": \"sentence\",\n",
       "          \"description\": \"Split text into paragraphs or sentences.\",\n",
       "          \"options\": [\n",
       "            \"sentence\",\n",
       "            \"paragraph\"\n",
       "          ],\n",
       "          \"required\": false\n",
       "        }\n",
       "      },\n",
       "      \"is_activated\": true,\n",
       "      \"name\": \"split\",\n",
       "      \"url\": \"https://github.com/gsi-upm/senpy\",\n",
       "      \"version\": \"0.3\"\n",
       "    }\n",
       "  ]\n",
       "}"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "query(f'{endpoint}/plugins')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If you want to get only a specific type of plugin, use the `plugin_type` parameter.\n",
    "e.g., this will only return the plugins for sentiment analysis:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>.output_html .hll { background-color: #ffffcc }\n",
       ".output_html  { background: #f8f8f8; }\n",
       ".output_html .c { color: #408080; font-style: italic } /* Comment */\n",
       ".output_html .err { border: 1px solid #FF0000 } /* Error */\n",
       ".output_html .k { color: #008000; font-weight: bold } /* Keyword */\n",
       ".output_html .o { color: #666666 } /* Operator */\n",
       ".output_html .ch { color: #408080; font-style: italic } /* Comment.Hashbang */\n",
       ".output_html .cm { color: #408080; font-style: italic } /* Comment.Multiline */\n",
       ".output_html .cp { color: #BC7A00 } /* Comment.Preproc */\n",
       ".output_html .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */\n",
       ".output_html .c1 { color: #408080; font-style: italic } /* Comment.Single */\n",
       ".output_html .cs { color: #408080; font-style: italic } /* Comment.Special */\n",
       ".output_html .gd { color: #A00000 } /* Generic.Deleted */\n",
       ".output_html .ge { font-style: italic } /* Generic.Emph */\n",
       ".output_html .gr { color: #FF0000 } /* Generic.Error */\n",
       ".output_html .gh { color: #000080; font-weight: bold } /* Generic.Heading */\n",
       ".output_html .gi { color: #00A000 } /* Generic.Inserted */\n",
       ".output_html .go { color: #888888 } /* Generic.Output */\n",
       ".output_html .gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n",
       ".output_html .gs { font-weight: bold } /* Generic.Strong */\n",
       ".output_html .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n",
       ".output_html .gt { color: #0044DD } /* Generic.Traceback */\n",
       ".output_html .kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n",
       ".output_html .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n",
       ".output_html .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n",
       ".output_html .kp { color: #008000 } /* Keyword.Pseudo */\n",
       ".output_html .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n",
       ".output_html .kt { color: #B00040 } /* Keyword.Type */\n",
       ".output_html .m { color: #666666 } /* Literal.Number */\n",
       ".output_html .s { color: #BA2121 } /* Literal.String */\n",
       ".output_html .na { color: #7D9029 } /* Name.Attribute */\n",
       ".output_html .nb { color: #008000 } /* Name.Builtin */\n",
       ".output_html .nc { color: #0000FF; font-weight: bold } /* Name.Class */\n",
       ".output_html .no { color: #880000 } /* Name.Constant */\n",
       ".output_html .nd { color: #AA22FF } /* Name.Decorator */\n",
       ".output_html .ni { color: #999999; font-weight: bold } /* Name.Entity */\n",
       ".output_html .ne { color: #D2413A; font-weight: bold } /* Name.Exception */\n",
       ".output_html .nf { color: #0000FF } /* Name.Function */\n",
       ".output_html .nl { color: #A0A000 } /* Name.Label */\n",
       ".output_html .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */\n",
       ".output_html .nt { color: #008000; font-weight: bold } /* Name.Tag */\n",
       ".output_html .nv { color: #19177C } /* Name.Variable */\n",
       ".output_html .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */\n",
       ".output_html .w { color: #bbbbbb } /* Text.Whitespace */\n",
       ".output_html .mb { color: #666666 } /* Literal.Number.Bin */\n",
       ".output_html .mf { color: #666666 } /* Literal.Number.Float */\n",
       ".output_html .mh { color: #666666 } /* Literal.Number.Hex */\n",
       ".output_html .mi { color: #666666 } /* Literal.Number.Integer */\n",
       ".output_html .mo { color: #666666 } /* Literal.Number.Oct */\n",
       ".output_html .sa { color: #BA2121 } /* Literal.String.Affix */\n",
       ".output_html .sb { color: #BA2121 } /* Literal.String.Backtick */\n",
       ".output_html .sc { color: #BA2121 } /* Literal.String.Char */\n",
       ".output_html .dl { color: #BA2121 } /* Literal.String.Delimiter */\n",
       ".output_html .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n",
       ".output_html .s2 { color: #BA2121 } /* Literal.String.Double */\n",
       ".output_html .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */\n",
       ".output_html .sh { color: #BA2121 } /* Literal.String.Heredoc */\n",
       ".output_html .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */\n",
       ".output_html .sx { color: #008000 } /* Literal.String.Other */\n",
       ".output_html .sr { color: #BB6688 } /* Literal.String.Regex */\n",
       ".output_html .s1 { color: #BA2121 } /* Literal.String.Single */\n",
       ".output_html .ss { color: #19177C } /* Literal.String.Symbol */\n",
       ".output_html .bp { color: #008000 } /* Name.Builtin.Pseudo */\n",
       ".output_html .fm { color: #0000FF } /* Name.Function.Magic */\n",
       ".output_html .vc { color: #19177C } /* Name.Variable.Class */\n",
       ".output_html .vg { color: #19177C } /* Name.Variable.Global */\n",
       ".output_html .vi { color: #19177C } /* Name.Variable.Instance */\n",
       ".output_html .vm { color: #19177C } /* Name.Variable.Magic */\n",
       ".output_html .il { color: #666666 } /* Literal.Number.Integer.Long */</style><div class=\"highlight\"><pre><span></span><span class=\"p\">{</span>\n",
       "  <span class=\"nd\">&quot;@context&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;http://senpy.gsi.upm.es/api/contexts/YXBpL3BsdWdpbnMvP3BsdWdpbl90eXBlPVNlbnRpbWVudFBsdWdpbiM%3D&quot;</span><span class=\"p\">,</span>\n",
       "  <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Plugins&quot;</span><span class=\"p\">,</span>\n",
       "  <span class=\"nt\">&quot;plugins&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "    <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;endpoint:plugins/sentiment-basic_0.1.1&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;SentimentPlugin&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;author&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;github.com/nachtkatze&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;\\nSentiment classifier using rule-based classification for Spanish. Based on english to spanish translation and SentiWordNet sentiment knowledge. This is a demo plugin that uses only some features from the TASS 2015 classifier. To use the entirely functional classifier you can use the service in: http://senpy.cluster.gsi.dit.upm.es.\\n&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;extra_params&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "        <span class=\"nt\">&quot;language&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "          <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"s2\">&quot;language&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;l&quot;</span>\n",
       "          <span class=\"p\">],</span>\n",
       "          <span class=\"nt\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;en&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;language of the text&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;options&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"s2\">&quot;en&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;es&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;it&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;fr&quot;</span>\n",
       "          <span class=\"p\">],</span>\n",
       "          <span class=\"nt\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span>\n",
       "        <span class=\"p\">}</span>\n",
       "      <span class=\"p\">},</span>\n",
       "      <span class=\"nt\">&quot;is_activated&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;maxPolarityValue&quot;</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;minPolarityValue&quot;</span><span class=\"p\">:</span> <span class=\"mi\">-1</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;sentiment-basic&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;version&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;0.1.1&quot;</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;endpoint:plugins/sentiment-meaningcloud_1.1&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;SentimentPlugin&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;author&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;GSI UPM&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;\\nSentiment analysis with meaningCloud service.\\nTo use this plugin, you need to obtain an API key from meaningCloud signing up here:\\nhttps://www.meaningcloud.com/developer/login\\n\\nWhen you had obtained the meaningCloud API Key, you have to provide it to the plugin, using param apiKey.\\nExample request:\\n\\nhttp://senpy.cluster.gsi.dit.upm.es/api/?algo=meaningCloud&amp;language=en&amp;apiKey=YOUR_API_KEY&amp;input=I%20love%20Madrid.\\n&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;extra_params&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "        <span class=\"nt\">&quot;apikey&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "          <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"s2\">&quot;apiKey&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;meaningcloud-key&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;meaningcloud-apikey&quot;</span>\n",
       "          <span class=\"p\">],</span>\n",
       "          <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;API key for the meaningcloud service. See https://www.meaningcloud.com/developer/login&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span>\n",
       "        <span class=\"p\">},</span>\n",
       "        <span class=\"nt\">&quot;language&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "          <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"s2\">&quot;language&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;l&quot;</span>\n",
       "          <span class=\"p\">],</span>\n",
       "          <span class=\"nt\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;auto&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;language of the input&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;options&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"s2\">&quot;en&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;es&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;ca&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;it&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;pt&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;fr&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;auto&quot;</span>\n",
       "          <span class=\"p\">],</span>\n",
       "          <span class=\"nt\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span>\n",
       "        <span class=\"p\">}</span>\n",
       "      <span class=\"p\">},</span>\n",
       "      <span class=\"nt\">&quot;is_activated&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;maxPolarityValue&quot;</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;minPolarityValue&quot;</span><span class=\"p\">:</span> <span class=\"mi\">-1</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;sentiment-meaningcloud&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;version&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;1.1&quot;</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;endpoint:plugins/sentiment-vader_0.1.1&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;SentimentPlugin&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;author&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;@icorcuera&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;\\nSentiment classifier using vaderSentiment module. Params accepted: Language: {en, es}. The output uses Marl ontology developed at GSI UPM for semantic web.\\n&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;extra_params&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "        <span class=\"nt\">&quot;aggregate&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "          <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"s2\">&quot;aggregate&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;agg&quot;</span>\n",
       "          <span class=\"p\">],</span>\n",
       "          <span class=\"nt\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"kc\">false</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Show only the strongest sentiment (aggregate) or all sentiments&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;options&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"kc\">true</span><span class=\"p\">,</span>\n",
       "            <span class=\"kc\">false</span>\n",
       "          <span class=\"p\">]</span>\n",
       "        <span class=\"p\">},</span>\n",
       "        <span class=\"nt\">&quot;language&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;lang_rand&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"s2\">&quot;language&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;l&quot;</span>\n",
       "          <span class=\"p\">],</span>\n",
       "          <span class=\"nt\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;auto&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;language of the input&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;options&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"s2\">&quot;es&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;en&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;auto&quot;</span>\n",
       "          <span class=\"p\">]</span>\n",
       "        <span class=\"p\">}</span>\n",
       "      <span class=\"p\">},</span>\n",
       "      <span class=\"nt\">&quot;is_activated&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;maxPolarityValue&quot;</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;minPolarityValue&quot;</span><span class=\"p\">:</span> <span class=\"mi\">0</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;sentiment-vader&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;version&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;0.1.1&quot;</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;endpoint:plugins/sentiment140_0.2&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;SentimentPlugin&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;author&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;@balkian&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Connects to the sentiment140 free API: http://sentiment140.com&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;extra_params&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "        <span class=\"nt\">&quot;language&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;lang_sentiment140&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"s2\">&quot;language&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;l&quot;</span>\n",
       "          <span class=\"p\">],</span>\n",
       "          <span class=\"nt\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;auto&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;language of the text&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;options&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"s2\">&quot;es&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;en&quot;</span><span class=\"p\">,</span>\n",
       "            <span class=\"s2\">&quot;auto&quot;</span>\n",
       "          <span class=\"p\">],</span>\n",
       "          <span class=\"nt\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span>\n",
       "        <span class=\"p\">}</span>\n",
       "      <span class=\"p\">},</span>\n",
       "      <span class=\"nt\">&quot;is_activated&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;maxPolarityValue&quot;</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;minPolarityValue&quot;</span><span class=\"p\">:</span> <span class=\"mi\">0</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;sentiment140&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;url&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;https://github.com/gsi-upm/senpy-plugins-community&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;version&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;0.2&quot;</span>\n",
       "    <span class=\"p\">}</span>\n",
       "  <span class=\"p\">]</span>\n",
       "<span class=\"p\">}</span>\n",
       "</pre></div>\n"
      ],
      "text/latex": [
       "\\begin{Verbatim}[commandchars=\\\\\\{\\}]\n",
       "\\PY{p}{\\PYZob{}}\n",
       "  \\PY{n+nd}{\\PYZdq{}@context\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}http://senpy.gsi.upm.es/api/contexts/YXBpL3BsdWdpbnMvP3BsdWdpbl90eXBlPVNlbnRpbWVudFBsdWdpbiM\\PYZpc{}3D\\PYZdq{}}\\PY{p}{,}\n",
       "  \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Plugins\\PYZdq{}}\\PY{p}{,}\n",
       "  \\PY{n+nt}{\\PYZdq{}plugins\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "    \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}endpoint:plugins/sentiment\\PYZhy{}basic\\PYZus{}0.1.1\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}SentimentPlugin\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}author\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}github.com/nachtkatze\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}\\PYZbs{}nSentiment classifier using rule\\PYZhy{}based classification for Spanish. Based on english to spanish translation and SentiWordNet sentiment knowledge. This is a demo plugin that uses only some features from the TASS 2015 classifier. To use the entirely functional classifier you can use the service in: http://senpy.cluster.gsi.dit.upm.es.\\PYZbs{}n\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}extra\\PYZus{}params\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "        \\PY{n+nt}{\\PYZdq{}language\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}language\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}l\\PYZdq{}}\n",
       "          \\PY{p}{]}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}default\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}en\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}language of the text\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}options\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}en\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}es\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}it\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}fr\\PYZdq{}}\n",
       "          \\PY{p}{]}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}required\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\n",
       "        \\PY{p}{\\PYZcb{}}\n",
       "      \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}is\\PYZus{}activated\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}maxPolarityValue\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mi}{1}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}minPolarityValue\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mi}{\\PYZhy{}1}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}name\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}sentiment\\PYZhy{}basic\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}version\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}0.1.1\\PYZdq{}}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}endpoint:plugins/sentiment\\PYZhy{}meaningcloud\\PYZus{}1.1\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}SentimentPlugin\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}author\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}GSI UPM\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}\\PYZbs{}nSentiment analysis with meaningCloud service.\\PYZbs{}nTo use this plugin, you need to obtain an API key from meaningCloud signing up here:\\PYZbs{}nhttps://www.meaningcloud.com/developer/login\\PYZbs{}n\\PYZbs{}nWhen you had obtained the meaningCloud API Key, you have to provide it to the plugin, using param apiKey.\\PYZbs{}nExample request:\\PYZbs{}n\\PYZbs{}nhttp://senpy.cluster.gsi.dit.upm.es/api/?algo=meaningCloud\\PYZam{}language=en\\PYZam{}apiKey=YOUR\\PYZus{}API\\PYZus{}KEY\\PYZam{}input=I\\PYZpc{}20love\\PYZpc{}20Madrid.\\PYZbs{}n\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}extra\\PYZus{}params\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "        \\PY{n+nt}{\\PYZdq{}apikey\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}apiKey\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}meaningcloud\\PYZhy{}key\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}meaningcloud\\PYZhy{}apikey\\PYZdq{}}\n",
       "          \\PY{p}{]}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}API key for the meaningcloud service. See https://www.meaningcloud.com/developer/login\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}required\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\n",
       "        \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "        \\PY{n+nt}{\\PYZdq{}language\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}language\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}l\\PYZdq{}}\n",
       "          \\PY{p}{]}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}default\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}auto\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}language of the input\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}options\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}en\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}es\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}ca\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}it\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}pt\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}fr\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}auto\\PYZdq{}}\n",
       "          \\PY{p}{]}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}required\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\n",
       "        \\PY{p}{\\PYZcb{}}\n",
       "      \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}is\\PYZus{}activated\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}maxPolarityValue\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mi}{1}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}minPolarityValue\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mi}{\\PYZhy{}1}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}name\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}sentiment\\PYZhy{}meaningcloud\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}version\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}1.1\\PYZdq{}}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}endpoint:plugins/sentiment\\PYZhy{}vader\\PYZus{}0.1.1\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}SentimentPlugin\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}author\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}@icorcuera\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}\\PYZbs{}nSentiment classifier using vaderSentiment module. Params accepted: Language: \\PYZob{}en, es\\PYZcb{}. The output uses Marl ontology developed at GSI UPM for semantic web.\\PYZbs{}n\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}extra\\PYZus{}params\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "        \\PY{n+nt}{\\PYZdq{}aggregate\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}aggregate\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}agg\\PYZdq{}}\n",
       "          \\PY{p}{]}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}default\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{false}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Show only the strongest sentiment (aggregate) or all sentiments\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}options\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{k+kc}{true}\\PY{p}{,}\n",
       "            \\PY{k+kc}{false}\n",
       "          \\PY{p}{]}\n",
       "        \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "        \\PY{n+nt}{\\PYZdq{}language\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}lang\\PYZus{}rand\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}language\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}l\\PYZdq{}}\n",
       "          \\PY{p}{]}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}default\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}auto\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}language of the input\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}options\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}es\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}en\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}auto\\PYZdq{}}\n",
       "          \\PY{p}{]}\n",
       "        \\PY{p}{\\PYZcb{}}\n",
       "      \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}is\\PYZus{}activated\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}maxPolarityValue\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mi}{1}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}minPolarityValue\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mi}{0}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}name\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}sentiment\\PYZhy{}vader\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}version\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}0.1.1\\PYZdq{}}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}endpoint:plugins/sentiment140\\PYZus{}0.2\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}SentimentPlugin\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}author\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}@balkian\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Connects to the sentiment140 free API: http://sentiment140.com\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}extra\\PYZus{}params\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "        \\PY{n+nt}{\\PYZdq{}language\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}lang\\PYZus{}sentiment140\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}language\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}l\\PYZdq{}}\n",
       "          \\PY{p}{]}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}default\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}auto\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}language of the text\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}options\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}es\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}en\\PYZdq{}}\\PY{p}{,}\n",
       "            \\PY{l+s+s2}{\\PYZdq{}auto\\PYZdq{}}\n",
       "          \\PY{p}{]}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}required\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\n",
       "        \\PY{p}{\\PYZcb{}}\n",
       "      \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}is\\PYZus{}activated\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}maxPolarityValue\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mi}{1}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}minPolarityValue\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mi}{0}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}name\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}sentiment140\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}url\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}https://github.com/gsi\\PYZhy{}upm/senpy\\PYZhy{}plugins\\PYZhy{}community\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}version\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}0.2\\PYZdq{}}\n",
       "    \\PY{p}{\\PYZcb{}}\n",
       "  \\PY{p}{]}\n",
       "\\PY{p}{\\PYZcb{}}\n",
       "\\end{Verbatim}\n"
      ],
      "text/plain": [
       "{\n",
       "  \"@context\": \"http://senpy.gsi.upm.es/api/contexts/YXBpL3BsdWdpbnMvP3BsdWdpbl90eXBlPVNlbnRpbWVudFBsdWdpbiM%3D\",\n",
       "  \"@type\": \"Plugins\",\n",
       "  \"plugins\": [\n",
       "    {\n",
       "      \"@id\": \"endpoint:plugins/sentiment-basic_0.1.1\",\n",
       "      \"@type\": \"SentimentPlugin\",\n",
       "      \"author\": \"github.com/nachtkatze\",\n",
       "      \"description\": \"\\nSentiment classifier using rule-based classification for Spanish. Based on english to spanish translation and SentiWordNet sentiment knowledge. This is a demo plugin that uses only some features from the TASS 2015 classifier. To use the entirely functional classifier you can use the service in: http://senpy.cluster.gsi.dit.upm.es.\\n\",\n",
       "      \"extra_params\": {\n",
       "        \"language\": {\n",
       "          \"aliases\": [\n",
       "            \"language\",\n",
       "            \"l\"\n",
       "          ],\n",
       "          \"default\": \"en\",\n",
       "          \"description\": \"language of the text\",\n",
       "          \"options\": [\n",
       "            \"en\",\n",
       "            \"es\",\n",
       "            \"it\",\n",
       "            \"fr\"\n",
       "          ],\n",
       "          \"required\": true\n",
       "        }\n",
       "      },\n",
       "      \"is_activated\": true,\n",
       "      \"maxPolarityValue\": 1,\n",
       "      \"minPolarityValue\": -1,\n",
       "      \"name\": \"sentiment-basic\",\n",
       "      \"version\": \"0.1.1\"\n",
       "    },\n",
       "    {\n",
       "      \"@id\": \"endpoint:plugins/sentiment-meaningcloud_1.1\",\n",
       "      \"@type\": \"SentimentPlugin\",\n",
       "      \"author\": \"GSI UPM\",\n",
       "      \"description\": \"\\nSentiment analysis with meaningCloud service.\\nTo use this plugin, you need to obtain an API key from meaningCloud signing up here:\\nhttps://www.meaningcloud.com/developer/login\\n\\nWhen you had obtained the meaningCloud API Key, you have to provide it to the plugin, using param apiKey.\\nExample request:\\n\\nhttp://senpy.cluster.gsi.dit.upm.es/api/?algo=meaningCloud&language=en&apiKey=YOUR_API_KEY&input=I%20love%20Madrid.\\n\",\n",
       "      \"extra_params\": {\n",
       "        \"apikey\": {\n",
       "          \"aliases\": [\n",
       "            \"apiKey\",\n",
       "            \"meaningcloud-key\",\n",
       "            \"meaningcloud-apikey\"\n",
       "          ],\n",
       "          \"description\": \"API key for the meaningcloud service. See https://www.meaningcloud.com/developer/login\",\n",
       "          \"required\": true\n",
       "        },\n",
       "        \"language\": {\n",
       "          \"aliases\": [\n",
       "            \"language\",\n",
       "            \"l\"\n",
       "          ],\n",
       "          \"default\": \"auto\",\n",
       "          \"description\": \"language of the input\",\n",
       "          \"options\": [\n",
       "            \"en\",\n",
       "            \"es\",\n",
       "            \"ca\",\n",
       "            \"it\",\n",
       "            \"pt\",\n",
       "            \"fr\",\n",
       "            \"auto\"\n",
       "          ],\n",
       "          \"required\": true\n",
       "        }\n",
       "      },\n",
       "      \"is_activated\": true,\n",
       "      \"maxPolarityValue\": 1,\n",
       "      \"minPolarityValue\": -1,\n",
       "      \"name\": \"sentiment-meaningcloud\",\n",
       "      \"version\": \"1.1\"\n",
       "    },\n",
       "    {\n",
       "      \"@id\": \"endpoint:plugins/sentiment-vader_0.1.1\",\n",
       "      \"@type\": \"SentimentPlugin\",\n",
       "      \"author\": \"@icorcuera\",\n",
       "      \"description\": \"\\nSentiment classifier using vaderSentiment module. Params accepted: Language: {en, es}. The output uses Marl ontology developed at GSI UPM for semantic web.\\n\",\n",
       "      \"extra_params\": {\n",
       "        \"aggregate\": {\n",
       "          \"aliases\": [\n",
       "            \"aggregate\",\n",
       "            \"agg\"\n",
       "          ],\n",
       "          \"default\": false,\n",
       "          \"description\": \"Show only the strongest sentiment (aggregate) or all sentiments\",\n",
       "          \"options\": [\n",
       "            true,\n",
       "            false\n",
       "          ]\n",
       "        },\n",
       "        \"language\": {\n",
       "          \"@id\": \"lang_rand\",\n",
       "          \"aliases\": [\n",
       "            \"language\",\n",
       "            \"l\"\n",
       "          ],\n",
       "          \"default\": \"auto\",\n",
       "          \"description\": \"language of the input\",\n",
       "          \"options\": [\n",
       "            \"es\",\n",
       "            \"en\",\n",
       "            \"auto\"\n",
       "          ]\n",
       "        }\n",
       "      },\n",
       "      \"is_activated\": true,\n",
       "      \"maxPolarityValue\": 1,\n",
       "      \"minPolarityValue\": 0,\n",
       "      \"name\": \"sentiment-vader\",\n",
       "      \"version\": \"0.1.1\"\n",
       "    },\n",
       "    {\n",
       "      \"@id\": \"endpoint:plugins/sentiment140_0.2\",\n",
       "      \"@type\": \"SentimentPlugin\",\n",
       "      \"author\": \"@balkian\",\n",
       "      \"description\": \"Connects to the sentiment140 free API: http://sentiment140.com\",\n",
       "      \"extra_params\": {\n",
       "        \"language\": {\n",
       "          \"@id\": \"lang_sentiment140\",\n",
       "          \"aliases\": [\n",
       "            \"language\",\n",
       "            \"l\"\n",
       "          ],\n",
       "          \"default\": \"auto\",\n",
       "          \"description\": \"language of the text\",\n",
       "          \"options\": [\n",
       "            \"es\",\n",
       "            \"en\",\n",
       "            \"auto\"\n",
       "          ],\n",
       "          \"required\": true\n",
       "        }\n",
       "      },\n",
       "      \"is_activated\": true,\n",
       "      \"maxPolarityValue\": 1,\n",
       "      \"minPolarityValue\": 0,\n",
       "      \"name\": \"sentiment140\",\n",
       "      \"url\": \"https://github.com/gsi-upm/senpy-plugins-community\",\n",
       "      \"version\": \"0.2\"\n",
       "    }\n",
       "  ]\n",
       "}"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "query(f'{endpoint}/plugins',\n",
    "      plugin_type=\"SentimentPlugin\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The `fields` parameter also works on the plugins API:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>.output_html .hll { background-color: #ffffcc }\n",
       ".output_html  { background: #f8f8f8; }\n",
       ".output_html .c { color: #408080; font-style: italic } /* Comment */\n",
       ".output_html .err { border: 1px solid #FF0000 } /* Error */\n",
       ".output_html .k { color: #008000; font-weight: bold } /* Keyword */\n",
       ".output_html .o { color: #666666 } /* Operator */\n",
       ".output_html .ch { color: #408080; font-style: italic } /* Comment.Hashbang */\n",
       ".output_html .cm { color: #408080; font-style: italic } /* Comment.Multiline */\n",
       ".output_html .cp { color: #BC7A00 } /* Comment.Preproc */\n",
       ".output_html .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */\n",
       ".output_html .c1 { color: #408080; font-style: italic } /* Comment.Single */\n",
       ".output_html .cs { color: #408080; font-style: italic } /* Comment.Special */\n",
       ".output_html .gd { color: #A00000 } /* Generic.Deleted */\n",
       ".output_html .ge { font-style: italic } /* Generic.Emph */\n",
       ".output_html .gr { color: #FF0000 } /* Generic.Error */\n",
       ".output_html .gh { color: #000080; font-weight: bold } /* Generic.Heading */\n",
       ".output_html .gi { color: #00A000 } /* Generic.Inserted */\n",
       ".output_html .go { color: #888888 } /* Generic.Output */\n",
       ".output_html .gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n",
       ".output_html .gs { font-weight: bold } /* Generic.Strong */\n",
       ".output_html .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n",
       ".output_html .gt { color: #0044DD } /* Generic.Traceback */\n",
       ".output_html .kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n",
       ".output_html .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n",
       ".output_html .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n",
       ".output_html .kp { color: #008000 } /* Keyword.Pseudo */\n",
       ".output_html .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n",
       ".output_html .kt { color: #B00040 } /* Keyword.Type */\n",
       ".output_html .m { color: #666666 } /* Literal.Number */\n",
       ".output_html .s { color: #BA2121 } /* Literal.String */\n",
       ".output_html .na { color: #7D9029 } /* Name.Attribute */\n",
       ".output_html .nb { color: #008000 } /* Name.Builtin */\n",
       ".output_html .nc { color: #0000FF; font-weight: bold } /* Name.Class */\n",
       ".output_html .no { color: #880000 } /* Name.Constant */\n",
       ".output_html .nd { color: #AA22FF } /* Name.Decorator */\n",
       ".output_html .ni { color: #999999; font-weight: bold } /* Name.Entity */\n",
       ".output_html .ne { color: #D2413A; font-weight: bold } /* Name.Exception */\n",
       ".output_html .nf { color: #0000FF } /* Name.Function */\n",
       ".output_html .nl { color: #A0A000 } /* Name.Label */\n",
       ".output_html .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */\n",
       ".output_html .nt { color: #008000; font-weight: bold } /* Name.Tag */\n",
       ".output_html .nv { color: #19177C } /* Name.Variable */\n",
       ".output_html .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */\n",
       ".output_html .w { color: #bbbbbb } /* Text.Whitespace */\n",
       ".output_html .mb { color: #666666 } /* Literal.Number.Bin */\n",
       ".output_html .mf { color: #666666 } /* Literal.Number.Float */\n",
       ".output_html .mh { color: #666666 } /* Literal.Number.Hex */\n",
       ".output_html .mi { color: #666666 } /* Literal.Number.Integer */\n",
       ".output_html .mo { color: #666666 } /* Literal.Number.Oct */\n",
       ".output_html .sa { color: #BA2121 } /* Literal.String.Affix */\n",
       ".output_html .sb { color: #BA2121 } /* Literal.String.Backtick */\n",
       ".output_html .sc { color: #BA2121 } /* Literal.String.Char */\n",
       ".output_html .dl { color: #BA2121 } /* Literal.String.Delimiter */\n",
       ".output_html .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n",
       ".output_html .s2 { color: #BA2121 } /* Literal.String.Double */\n",
       ".output_html .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */\n",
       ".output_html .sh { color: #BA2121 } /* Literal.String.Heredoc */\n",
       ".output_html .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */\n",
       ".output_html .sx { color: #008000 } /* Literal.String.Other */\n",
       ".output_html .sr { color: #BB6688 } /* Literal.String.Regex */\n",
       ".output_html .s1 { color: #BA2121 } /* Literal.String.Single */\n",
       ".output_html .ss { color: #19177C } /* Literal.String.Symbol */\n",
       ".output_html .bp { color: #008000 } /* Name.Builtin.Pseudo */\n",
       ".output_html .fm { color: #0000FF } /* Name.Function.Magic */\n",
       ".output_html .vc { color: #19177C } /* Name.Variable.Class */\n",
       ".output_html .vg { color: #19177C } /* Name.Variable.Global */\n",
       ".output_html .vi { color: #19177C } /* Name.Variable.Instance */\n",
       ".output_html .vm { color: #19177C } /* Name.Variable.Magic */\n",
       ".output_html .il { color: #666666 } /* Literal.Number.Integer.Long */</style><div class=\"highlight\"><pre><span></span><span class=\"p\">[[</span><span class=\"s2\">&quot;endpoint:plugins/emotion-anew_0.5.1&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;EmotionPlugin&quot;</span><span class=\"p\">],</span> <span class=\"p\">[</span><span class=\"s2\">&quot;endpoint:plugins/emotion-depechemood_0.1&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;EmotionPlugin&quot;</span><span class=\"p\">],</span> <span class=\"p\">[</span><span class=\"s2\">&quot;endpoint:plugins/emotion-wnaffect_0.2&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;EmotionPlugin&quot;</span><span class=\"p\">],</span> <span class=\"p\">[</span><span class=\"s2\">&quot;endpoint:plugins/example-plugin_0.1&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Plugin&quot;</span><span class=\"p\">],</span> <span class=\"p\">[</span><span class=\"s2\">&quot;endpoint:plugins/sentiment-basic_0.1.1&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;SentimentPlugin&quot;</span><span class=\"p\">],</span> <span class=\"p\">[</span><span class=\"s2\">&quot;endpoint:plugins/sentiment-meaningcloud_1.1&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;SentimentPlugin&quot;</span><span class=\"p\">],</span> <span class=\"p\">[</span><span class=\"s2\">&quot;endpoint:plugins/sentiment-vader_0.1.1&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;SentimentPlugin&quot;</span><span class=\"p\">],</span> <span class=\"p\">[</span><span class=\"s2\">&quot;endpoint:plugins/sentiment140_0.2&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;SentimentPlugin&quot;</span><span class=\"p\">],</span> <span class=\"p\">[</span><span class=\"s2\">&quot;endpoint:plugins/split_0.3&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Plugin&quot;</span><span class=\"p\">]]</span>\n",
       "</pre></div>\n"
      ],
      "text/latex": [
       "\\begin{Verbatim}[commandchars=\\\\\\{\\}]\n",
       "\\PY{p}{[}\\PY{p}{[}\\PY{l+s+s2}{\\PYZdq{}endpoint:plugins/emotion\\PYZhy{}anew\\PYZus{}0.5.1\\PYZdq{}}\\PY{p}{,} \\PY{l+s+s2}{\\PYZdq{}EmotionPlugin\\PYZdq{}}\\PY{p}{]}\\PY{p}{,} \\PY{p}{[}\\PY{l+s+s2}{\\PYZdq{}endpoint:plugins/emotion\\PYZhy{}depechemood\\PYZus{}0.1\\PYZdq{}}\\PY{p}{,} \\PY{l+s+s2}{\\PYZdq{}EmotionPlugin\\PYZdq{}}\\PY{p}{]}\\PY{p}{,} \\PY{p}{[}\\PY{l+s+s2}{\\PYZdq{}endpoint:plugins/emotion\\PYZhy{}wnaffect\\PYZus{}0.2\\PYZdq{}}\\PY{p}{,} \\PY{l+s+s2}{\\PYZdq{}EmotionPlugin\\PYZdq{}}\\PY{p}{]}\\PY{p}{,} \\PY{p}{[}\\PY{l+s+s2}{\\PYZdq{}endpoint:plugins/example\\PYZhy{}plugin\\PYZus{}0.1\\PYZdq{}}\\PY{p}{,} \\PY{l+s+s2}{\\PYZdq{}Plugin\\PYZdq{}}\\PY{p}{]}\\PY{p}{,} \\PY{p}{[}\\PY{l+s+s2}{\\PYZdq{}endpoint:plugins/sentiment\\PYZhy{}basic\\PYZus{}0.1.1\\PYZdq{}}\\PY{p}{,} \\PY{l+s+s2}{\\PYZdq{}SentimentPlugin\\PYZdq{}}\\PY{p}{]}\\PY{p}{,} \\PY{p}{[}\\PY{l+s+s2}{\\PYZdq{}endpoint:plugins/sentiment\\PYZhy{}meaningcloud\\PYZus{}1.1\\PYZdq{}}\\PY{p}{,} \\PY{l+s+s2}{\\PYZdq{}SentimentPlugin\\PYZdq{}}\\PY{p}{]}\\PY{p}{,} \\PY{p}{[}\\PY{l+s+s2}{\\PYZdq{}endpoint:plugins/sentiment\\PYZhy{}vader\\PYZus{}0.1.1\\PYZdq{}}\\PY{p}{,} \\PY{l+s+s2}{\\PYZdq{}SentimentPlugin\\PYZdq{}}\\PY{p}{]}\\PY{p}{,} \\PY{p}{[}\\PY{l+s+s2}{\\PYZdq{}endpoint:plugins/sentiment140\\PYZus{}0.2\\PYZdq{}}\\PY{p}{,} \\PY{l+s+s2}{\\PYZdq{}SentimentPlugin\\PYZdq{}}\\PY{p}{]}\\PY{p}{,} \\PY{p}{[}\\PY{l+s+s2}{\\PYZdq{}endpoint:plugins/split\\PYZus{}0.3\\PYZdq{}}\\PY{p}{,} \\PY{l+s+s2}{\\PYZdq{}Plugin\\PYZdq{}}\\PY{p}{]}\\PY{p}{]}\n",
       "\\end{Verbatim}\n"
      ],
      "text/plain": [
       "[[\"endpoint:plugins/emotion-anew_0.5.1\", \"EmotionPlugin\"], [\"endpoint:plugins/emotion-depechemood_0.1\", \"EmotionPlugin\"], [\"endpoint:plugins/emotion-wnaffect_0.2\", \"EmotionPlugin\"], [\"endpoint:plugins/example-plugin_0.1\", \"Plugin\"], [\"endpoint:plugins/sentiment-basic_0.1.1\", \"SentimentPlugin\"], [\"endpoint:plugins/sentiment-meaningcloud_1.1\", \"SentimentPlugin\"], [\"endpoint:plugins/sentiment-vader_0.1.1\", \"SentimentPlugin\"], [\"endpoint:plugins/sentiment140_0.2\", \"SentimentPlugin\"], [\"endpoint:plugins/split_0.3\", \"Plugin\"]]"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "query(f'{endpoint}/plugins',\n",
    "      fields='plugins[].[\"@id\",\"@type\"]')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Alternatively:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Evaluation"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Sentiment analysis plugins can also be evaluated on a series of pre-defined datasets, using the `gsitk` tool.\n",
    "\n",
    "For instance, to evaluate the `sentiment-vader` plugin on the `vader` and `sts` datasets, we would simply call:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>.output_html .hll { background-color: #ffffcc }\n",
       ".output_html  { background: #f8f8f8; }\n",
       ".output_html .c { color: #408080; font-style: italic } /* Comment */\n",
       ".output_html .err { border: 1px solid #FF0000 } /* Error */\n",
       ".output_html .k { color: #008000; font-weight: bold } /* Keyword */\n",
       ".output_html .o { color: #666666 } /* Operator */\n",
       ".output_html .ch { color: #408080; font-style: italic } /* Comment.Hashbang */\n",
       ".output_html .cm { color: #408080; font-style: italic } /* Comment.Multiline */\n",
       ".output_html .cp { color: #BC7A00 } /* Comment.Preproc */\n",
       ".output_html .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */\n",
       ".output_html .c1 { color: #408080; font-style: italic } /* Comment.Single */\n",
       ".output_html .cs { color: #408080; font-style: italic } /* Comment.Special */\n",
       ".output_html .gd { color: #A00000 } /* Generic.Deleted */\n",
       ".output_html .ge { font-style: italic } /* Generic.Emph */\n",
       ".output_html .gr { color: #FF0000 } /* Generic.Error */\n",
       ".output_html .gh { color: #000080; font-weight: bold } /* Generic.Heading */\n",
       ".output_html .gi { color: #00A000 } /* Generic.Inserted */\n",
       ".output_html .go { color: #888888 } /* Generic.Output */\n",
       ".output_html .gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n",
       ".output_html .gs { font-weight: bold } /* Generic.Strong */\n",
       ".output_html .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n",
       ".output_html .gt { color: #0044DD } /* Generic.Traceback */\n",
       ".output_html .kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n",
       ".output_html .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n",
       ".output_html .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n",
       ".output_html .kp { color: #008000 } /* Keyword.Pseudo */\n",
       ".output_html .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n",
       ".output_html .kt { color: #B00040 } /* Keyword.Type */\n",
       ".output_html .m { color: #666666 } /* Literal.Number */\n",
       ".output_html .s { color: #BA2121 } /* Literal.String */\n",
       ".output_html .na { color: #7D9029 } /* Name.Attribute */\n",
       ".output_html .nb { color: #008000 } /* Name.Builtin */\n",
       ".output_html .nc { color: #0000FF; font-weight: bold } /* Name.Class */\n",
       ".output_html .no { color: #880000 } /* Name.Constant */\n",
       ".output_html .nd { color: #AA22FF } /* Name.Decorator */\n",
       ".output_html .ni { color: #999999; font-weight: bold } /* Name.Entity */\n",
       ".output_html .ne { color: #D2413A; font-weight: bold } /* Name.Exception */\n",
       ".output_html .nf { color: #0000FF } /* Name.Function */\n",
       ".output_html .nl { color: #A0A000 } /* Name.Label */\n",
       ".output_html .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */\n",
       ".output_html .nt { color: #008000; font-weight: bold } /* Name.Tag */\n",
       ".output_html .nv { color: #19177C } /* Name.Variable */\n",
       ".output_html .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */\n",
       ".output_html .w { color: #bbbbbb } /* Text.Whitespace */\n",
       ".output_html .mb { color: #666666 } /* Literal.Number.Bin */\n",
       ".output_html .mf { color: #666666 } /* Literal.Number.Float */\n",
       ".output_html .mh { color: #666666 } /* Literal.Number.Hex */\n",
       ".output_html .mi { color: #666666 } /* Literal.Number.Integer */\n",
       ".output_html .mo { color: #666666 } /* Literal.Number.Oct */\n",
       ".output_html .sa { color: #BA2121 } /* Literal.String.Affix */\n",
       ".output_html .sb { color: #BA2121 } /* Literal.String.Backtick */\n",
       ".output_html .sc { color: #BA2121 } /* Literal.String.Char */\n",
       ".output_html .dl { color: #BA2121 } /* Literal.String.Delimiter */\n",
       ".output_html .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n",
       ".output_html .s2 { color: #BA2121 } /* Literal.String.Double */\n",
       ".output_html .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */\n",
       ".output_html .sh { color: #BA2121 } /* Literal.String.Heredoc */\n",
       ".output_html .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */\n",
       ".output_html .sx { color: #008000 } /* Literal.String.Other */\n",
       ".output_html .sr { color: #BB6688 } /* Literal.String.Regex */\n",
       ".output_html .s1 { color: #BA2121 } /* Literal.String.Single */\n",
       ".output_html .ss { color: #19177C } /* Literal.String.Symbol */\n",
       ".output_html .bp { color: #008000 } /* Name.Builtin.Pseudo */\n",
       ".output_html .fm { color: #0000FF } /* Name.Function.Magic */\n",
       ".output_html .vc { color: #19177C } /* Name.Variable.Class */\n",
       ".output_html .vg { color: #19177C } /* Name.Variable.Global */\n",
       ".output_html .vi { color: #19177C } /* Name.Variable.Instance */\n",
       ".output_html .vm { color: #19177C } /* Name.Variable.Magic */\n",
       ".output_html .il { color: #666666 } /* Literal.Number.Integer.Long */</style><div class=\"highlight\"><pre><span></span><span class=\"p\">{</span>\n",
       "  <span class=\"nd\">&quot;@context&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;http://senpy.gsi.upm.es/api/contexts/YXBpL2V2YWx1YXRlLz9hbGdvPXNlbnRpbWVudC12YWRlciZkYXRhc2V0PXZhZGVyJTJDc3RzJm91dGZvcm1hdD1qc29uLWxkIw%3D%3D&quot;</span><span class=\"p\">,</span>\n",
       "  <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;AggregatedEvaluation&quot;</span><span class=\"p\">,</span>\n",
       "  <span class=\"nt\">&quot;senpy:evaluations&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "    <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Evaluation&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;evaluates&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;endpoint:plugins/sentiment-vader_0.1.1__vader&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;evaluatesOn&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;vader&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;metrics&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Accuracy&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;value&quot;</span><span class=\"p\">:</span> <span class=\"mf\">0.6907142857142857</span>\n",
       "        <span class=\"p\">},</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Precision_macro&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;value&quot;</span><span class=\"p\">:</span> <span class=\"mf\">0.34535714285714286</span>\n",
       "        <span class=\"p\">},</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Recall_macro&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;value&quot;</span><span class=\"p\">:</span> <span class=\"mf\">0.5</span>\n",
       "        <span class=\"p\">},</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;F1_macro&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;value&quot;</span><span class=\"p\">:</span> <span class=\"mf\">0.40853400929446554</span>\n",
       "        <span class=\"p\">},</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;F1_weighted&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;value&quot;</span><span class=\"p\">:</span> <span class=\"mf\">0.5643605528396403</span>\n",
       "        <span class=\"p\">},</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;F1_micro&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;value&quot;</span><span class=\"p\">:</span> <span class=\"mf\">0.6907142857142857</span>\n",
       "        <span class=\"p\">},</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;F1_macro&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;value&quot;</span><span class=\"p\">:</span> <span class=\"mf\">0.40853400929446554</span>\n",
       "        <span class=\"p\">}</span>\n",
       "      <span class=\"p\">]</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Evaluation&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;evaluates&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;endpoint:plugins/sentiment-vader_0.1.1__sts&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;evaluatesOn&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;sts&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;metrics&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Accuracy&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;value&quot;</span><span class=\"p\">:</span> <span class=\"mf\">0.3107177974434612</span>\n",
       "        <span class=\"p\">},</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Precision_macro&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;value&quot;</span><span class=\"p\">:</span> <span class=\"mf\">0.1553588987217306</span>\n",
       "        <span class=\"p\">},</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Recall_macro&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;value&quot;</span><span class=\"p\">:</span> <span class=\"mf\">0.5</span>\n",
       "        <span class=\"p\">},</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;F1_macro&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;value&quot;</span><span class=\"p\">:</span> <span class=\"mf\">0.23705926481620407</span>\n",
       "        <span class=\"p\">},</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;F1_weighted&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;value&quot;</span><span class=\"p\">:</span> <span class=\"mf\">0.14731706525451424</span>\n",
       "        <span class=\"p\">},</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;F1_micro&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;value&quot;</span><span class=\"p\">:</span> <span class=\"mf\">0.3107177974434612</span>\n",
       "        <span class=\"p\">},</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;F1_macro&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;value&quot;</span><span class=\"p\">:</span> <span class=\"mf\">0.23705926481620407</span>\n",
       "        <span class=\"p\">}</span>\n",
       "      <span class=\"p\">]</span>\n",
       "    <span class=\"p\">}</span>\n",
       "  <span class=\"p\">]</span>\n",
       "<span class=\"p\">}</span>\n",
       "</pre></div>\n"
      ],
      "text/latex": [
       "\\begin{Verbatim}[commandchars=\\\\\\{\\}]\n",
       "\\PY{p}{\\PYZob{}}\n",
       "  \\PY{n+nd}{\\PYZdq{}@context\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}http://senpy.gsi.upm.es/api/contexts/YXBpL2V2YWx1YXRlLz9hbGdvPXNlbnRpbWVudC12YWRlciZkYXRhc2V0PXZhZGVyJTJDc3RzJm91dGZvcm1hdD1qc29uLWxkIw\\PYZpc{}3D\\PYZpc{}3D\\PYZdq{}}\\PY{p}{,}\n",
       "  \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}AggregatedEvaluation\\PYZdq{}}\\PY{p}{,}\n",
       "  \\PY{n+nt}{\\PYZdq{}senpy:evaluations\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "    \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Evaluation\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}evaluates\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}endpoint:plugins/sentiment\\PYZhy{}vader\\PYZus{}0.1.1\\PYZus{}\\PYZus{}vader\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}evaluatesOn\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}vader\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}metrics\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Accuracy\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}value\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mf}{0.6907142857142857}\n",
       "        \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Precision\\PYZus{}macro\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}value\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mf}{0.34535714285714286}\n",
       "        \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Recall\\PYZus{}macro\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}value\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mf}{0.5}\n",
       "        \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}F1\\PYZus{}macro\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}value\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mf}{0.40853400929446554}\n",
       "        \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}F1\\PYZus{}weighted\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}value\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mf}{0.5643605528396403}\n",
       "        \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}F1\\PYZus{}micro\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}value\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mf}{0.6907142857142857}\n",
       "        \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}F1\\PYZus{}macro\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}value\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mf}{0.40853400929446554}\n",
       "        \\PY{p}{\\PYZcb{}}\n",
       "      \\PY{p}{]}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Evaluation\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}evaluates\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}endpoint:plugins/sentiment\\PYZhy{}vader\\PYZus{}0.1.1\\PYZus{}\\PYZus{}sts\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}evaluatesOn\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}sts\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}metrics\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Accuracy\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}value\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mf}{0.3107177974434612}\n",
       "        \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Precision\\PYZus{}macro\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}value\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mf}{0.1553588987217306}\n",
       "        \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Recall\\PYZus{}macro\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}value\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mf}{0.5}\n",
       "        \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}F1\\PYZus{}macro\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}value\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mf}{0.23705926481620407}\n",
       "        \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}F1\\PYZus{}weighted\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}value\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mf}{0.14731706525451424}\n",
       "        \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}F1\\PYZus{}micro\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}value\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mf}{0.3107177974434612}\n",
       "        \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}F1\\PYZus{}macro\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}value\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mf}{0.23705926481620407}\n",
       "        \\PY{p}{\\PYZcb{}}\n",
       "      \\PY{p}{]}\n",
       "    \\PY{p}{\\PYZcb{}}\n",
       "  \\PY{p}{]}\n",
       "\\PY{p}{\\PYZcb{}}\n",
       "\\end{Verbatim}\n"
      ],
      "text/plain": [
       "{\n",
       "  \"@context\": \"http://senpy.gsi.upm.es/api/contexts/YXBpL2V2YWx1YXRlLz9hbGdvPXNlbnRpbWVudC12YWRlciZkYXRhc2V0PXZhZGVyJTJDc3RzJm91dGZvcm1hdD1qc29uLWxkIw%3D%3D\",\n",
       "  \"@type\": \"AggregatedEvaluation\",\n",
       "  \"senpy:evaluations\": [\n",
       "    {\n",
       "      \"@type\": \"Evaluation\",\n",
       "      \"evaluates\": \"endpoint:plugins/sentiment-vader_0.1.1__vader\",\n",
       "      \"evaluatesOn\": \"vader\",\n",
       "      \"metrics\": [\n",
       "        {\n",
       "          \"@type\": \"Accuracy\",\n",
       "          \"value\": 0.6907142857142857\n",
       "        },\n",
       "        {\n",
       "          \"@type\": \"Precision_macro\",\n",
       "          \"value\": 0.34535714285714286\n",
       "        },\n",
       "        {\n",
       "          \"@type\": \"Recall_macro\",\n",
       "          \"value\": 0.5\n",
       "        },\n",
       "        {\n",
       "          \"@type\": \"F1_macro\",\n",
       "          \"value\": 0.40853400929446554\n",
       "        },\n",
       "        {\n",
       "          \"@type\": \"F1_weighted\",\n",
       "          \"value\": 0.5643605528396403\n",
       "        },\n",
       "        {\n",
       "          \"@type\": \"F1_micro\",\n",
       "          \"value\": 0.6907142857142857\n",
       "        },\n",
       "        {\n",
       "          \"@type\": \"F1_macro\",\n",
       "          \"value\": 0.40853400929446554\n",
       "        }\n",
       "      ]\n",
       "    },\n",
       "    {\n",
       "      \"@type\": \"Evaluation\",\n",
       "      \"evaluates\": \"endpoint:plugins/sentiment-vader_0.1.1__sts\",\n",
       "      \"evaluatesOn\": \"sts\",\n",
       "      \"metrics\": [\n",
       "        {\n",
       "          \"@type\": \"Accuracy\",\n",
       "          \"value\": 0.3107177974434612\n",
       "        },\n",
       "        {\n",
       "          \"@type\": \"Precision_macro\",\n",
       "          \"value\": 0.1553588987217306\n",
       "        },\n",
       "        {\n",
       "          \"@type\": \"Recall_macro\",\n",
       "          \"value\": 0.5\n",
       "        },\n",
       "        {\n",
       "          \"@type\": \"F1_macro\",\n",
       "          \"value\": 0.23705926481620407\n",
       "        },\n",
       "        {\n",
       "          \"@type\": \"F1_weighted\",\n",
       "          \"value\": 0.14731706525451424\n",
       "        },\n",
       "        {\n",
       "          \"@type\": \"F1_micro\",\n",
       "          \"value\": 0.3107177974434612\n",
       "        },\n",
       "        {\n",
       "          \"@type\": \"F1_macro\",\n",
       "          \"value\": 0.23705926481620407\n",
       "        }\n",
       "      ]\n",
       "    }\n",
       "  ]\n",
       "}"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "query(f'{endpoint}/evaluate',\n",
    "     algo=\"sentiment-vader\",\n",
    "     dataset=\"vader,sts\",\n",
    "     outformat='json-ld')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The same results can be visualized as a table in the Web interface:\n",
    "\n",
    "![](evaluation-results.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**note**: to evaluate a plugin on a dataset, senpy will need to predict the labels of the entries using the plugin.\n",
    "This process might take long for plugins that use an external service, such as `sentiment140`."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Running your own senpy instance with Docker"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now that you're familiar with Senpy, you can deploy your own instance quite easily. e.g. using docker:\n",
    "\n",
    "```shell\n",
    "docker run -ti --name 'SenpyEndpoint' -d -p 5000:5000 gsiupm/senpy\n",
    "```\n",
    "\n",
    "Alternatively, you can install senpy in your system and run it:\n",
    "\n",
    "```shell\n",
    "# First install it\n",
    "pip install --user senpy\n",
    "\n",
    "# Run locally\n",
    "senpy\n",
    "# or\n",
    "python -m senpy\n",
    "```\n",
    "\n",
    "Once you have an instance running, feel free to change the endpoint variable to run the examples in your own instance."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Advanced topics"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Verbose output"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "By default, senpy does not include information that might be too verbose, such as the parameters that were used in the analysis.\n",
    "\n",
    "You can instruct senpy to provide a more verbose output with the `verbose` parameter:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>.output_html .hll { background-color: #ffffcc }\n",
       ".output_html  { background: #f8f8f8; }\n",
       ".output_html .c { color: #408080; font-style: italic } /* Comment */\n",
       ".output_html .err { border: 1px solid #FF0000 } /* Error */\n",
       ".output_html .k { color: #008000; font-weight: bold } /* Keyword */\n",
       ".output_html .o { color: #666666 } /* Operator */\n",
       ".output_html .ch { color: #408080; font-style: italic } /* Comment.Hashbang */\n",
       ".output_html .cm { color: #408080; font-style: italic } /* Comment.Multiline */\n",
       ".output_html .cp { color: #BC7A00 } /* Comment.Preproc */\n",
       ".output_html .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */\n",
       ".output_html .c1 { color: #408080; font-style: italic } /* Comment.Single */\n",
       ".output_html .cs { color: #408080; font-style: italic } /* Comment.Special */\n",
       ".output_html .gd { color: #A00000 } /* Generic.Deleted */\n",
       ".output_html .ge { font-style: italic } /* Generic.Emph */\n",
       ".output_html .gr { color: #FF0000 } /* Generic.Error */\n",
       ".output_html .gh { color: #000080; font-weight: bold } /* Generic.Heading */\n",
       ".output_html .gi { color: #00A000 } /* Generic.Inserted */\n",
       ".output_html .go { color: #888888 } /* Generic.Output */\n",
       ".output_html .gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n",
       ".output_html .gs { font-weight: bold } /* Generic.Strong */\n",
       ".output_html .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n",
       ".output_html .gt { color: #0044DD } /* Generic.Traceback */\n",
       ".output_html .kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n",
       ".output_html .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n",
       ".output_html .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n",
       ".output_html .kp { color: #008000 } /* Keyword.Pseudo */\n",
       ".output_html .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n",
       ".output_html .kt { color: #B00040 } /* Keyword.Type */\n",
       ".output_html .m { color: #666666 } /* Literal.Number */\n",
       ".output_html .s { color: #BA2121 } /* Literal.String */\n",
       ".output_html .na { color: #7D9029 } /* Name.Attribute */\n",
       ".output_html .nb { color: #008000 } /* Name.Builtin */\n",
       ".output_html .nc { color: #0000FF; font-weight: bold } /* Name.Class */\n",
       ".output_html .no { color: #880000 } /* Name.Constant */\n",
       ".output_html .nd { color: #AA22FF } /* Name.Decorator */\n",
       ".output_html .ni { color: #999999; font-weight: bold } /* Name.Entity */\n",
       ".output_html .ne { color: #D2413A; font-weight: bold } /* Name.Exception */\n",
       ".output_html .nf { color: #0000FF } /* Name.Function */\n",
       ".output_html .nl { color: #A0A000 } /* Name.Label */\n",
       ".output_html .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */\n",
       ".output_html .nt { color: #008000; font-weight: bold } /* Name.Tag */\n",
       ".output_html .nv { color: #19177C } /* Name.Variable */\n",
       ".output_html .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */\n",
       ".output_html .w { color: #bbbbbb } /* Text.Whitespace */\n",
       ".output_html .mb { color: #666666 } /* Literal.Number.Bin */\n",
       ".output_html .mf { color: #666666 } /* Literal.Number.Float */\n",
       ".output_html .mh { color: #666666 } /* Literal.Number.Hex */\n",
       ".output_html .mi { color: #666666 } /* Literal.Number.Integer */\n",
       ".output_html .mo { color: #666666 } /* Literal.Number.Oct */\n",
       ".output_html .sa { color: #BA2121 } /* Literal.String.Affix */\n",
       ".output_html .sb { color: #BA2121 } /* Literal.String.Backtick */\n",
       ".output_html .sc { color: #BA2121 } /* Literal.String.Char */\n",
       ".output_html .dl { color: #BA2121 } /* Literal.String.Delimiter */\n",
       ".output_html .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n",
       ".output_html .s2 { color: #BA2121 } /* Literal.String.Double */\n",
       ".output_html .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */\n",
       ".output_html .sh { color: #BA2121 } /* Literal.String.Heredoc */\n",
       ".output_html .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */\n",
       ".output_html .sx { color: #008000 } /* Literal.String.Other */\n",
       ".output_html .sr { color: #BB6688 } /* Literal.String.Regex */\n",
       ".output_html .s1 { color: #BA2121 } /* Literal.String.Single */\n",
       ".output_html .ss { color: #19177C } /* Literal.String.Symbol */\n",
       ".output_html .bp { color: #008000 } /* Name.Builtin.Pseudo */\n",
       ".output_html .fm { color: #0000FF } /* Name.Function.Magic */\n",
       ".output_html .vc { color: #19177C } /* Name.Variable.Class */\n",
       ".output_html .vg { color: #19177C } /* Name.Variable.Global */\n",
       ".output_html .vi { color: #19177C } /* Name.Variable.Instance */\n",
       ".output_html .vm { color: #19177C } /* Name.Variable.Magic */\n",
       ".output_html .il { color: #666666 } /* Literal.Number.Integer.Long */</style><div class=\"highlight\"><pre><span></span><span class=\"p\">{</span>\n",
       "  <span class=\"nd\">&quot;@context&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;http://senpy.gsi.upm.es/api/contexts/YXBpL3NlbnRpbWVudDE0MD9pbnB1dD1TZW5weStpcyt0aGUrYmVzdCtmcmFtZXdvcmsrZm9yK3NlbWFudGljK3NlbnRpbWVudCthbmFseXNpcyUyQythbmQrdmVyeStlYXN5K3RvK3VzZSZ2ZXJib3NlPVRydWUj&quot;</span><span class=\"p\">,</span>\n",
       "  <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Results&quot;</span><span class=\"p\">,</span>\n",
       "  <span class=\"nt\">&quot;activities&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "    <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;prefix:Analysis_1563369541.408701&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Analysis&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;marl:maxPolarityValue&quot;</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;marl:minPolarityValue&quot;</span><span class=\"p\">:</span> <span class=\"mi\">0</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;prov:used&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Parameter&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;input&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;value&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Senpy is the best framework for semantic sentiment analysis, and very easy to use&quot;</span>\n",
       "        <span class=\"p\">},</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Parameter&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;verbose&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;value&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span>\n",
       "        <span class=\"p\">},</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Parameter&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;in-headers&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;value&quot;</span><span class=\"p\">:</span> <span class=\"kc\">false</span>\n",
       "        <span class=\"p\">},</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Parameter&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;algorithm&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;value&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;default&quot;</span>\n",
       "        <span class=\"p\">},</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Parameter&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;expanded-jsonld&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;value&quot;</span><span class=\"p\">:</span> <span class=\"kc\">false</span>\n",
       "        <span class=\"p\">},</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Parameter&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;with-parameters&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;value&quot;</span><span class=\"p\">:</span> <span class=\"kc\">false</span>\n",
       "        <span class=\"p\">},</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Parameter&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;outformat&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;value&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;json-ld&quot;</span>\n",
       "        <span class=\"p\">},</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Parameter&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;help&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;value&quot;</span><span class=\"p\">:</span> <span class=\"kc\">false</span>\n",
       "        <span class=\"p\">},</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Parameter&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;aliases&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;value&quot;</span><span class=\"p\">:</span> <span class=\"kc\">false</span>\n",
       "        <span class=\"p\">},</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Parameter&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;conversion&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;value&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;full&quot;</span>\n",
       "        <span class=\"p\">},</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Parameter&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;intype&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;value&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;direct&quot;</span>\n",
       "        <span class=\"p\">},</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Parameter&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;informat&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;value&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;text&quot;</span>\n",
       "        <span class=\"p\">},</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Parameter&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;prefix&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;value&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;&quot;</span>\n",
       "        <span class=\"p\">},</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Parameter&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;urischeme&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;value&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;RFC5147String&quot;</span>\n",
       "        <span class=\"p\">},</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Parameter&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;language&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;value&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;auto&quot;</span>\n",
       "        <span class=\"p\">}</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;prov:wasAssociatedWith&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;endpoint:plugins/sentiment140_0.2&quot;</span>\n",
       "    <span class=\"p\">}</span>\n",
       "  <span class=\"p\">],</span>\n",
       "  <span class=\"nt\">&quot;entries&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "    <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;prefix:&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Entry&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;marl:hasOpinion&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Sentiment&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;marl:hasPolarity&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;marl:Positive&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;prov:wasGeneratedBy&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;prefix:Analysis_1563369541.408701&quot;</span>\n",
       "        <span class=\"p\">}</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;nif:isString&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Senpy is the best framework for semantic sentiment analysis, and very easy to use&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;onyx:hasEmotionSet&quot;</span><span class=\"p\">:</span> <span class=\"p\">[]</span>\n",
       "    <span class=\"p\">}</span>\n",
       "  <span class=\"p\">]</span>\n",
       "<span class=\"p\">}</span>\n",
       "</pre></div>\n"
      ],
      "text/latex": [
       "\\begin{Verbatim}[commandchars=\\\\\\{\\}]\n",
       "\\PY{p}{\\PYZob{}}\n",
       "  \\PY{n+nd}{\\PYZdq{}@context\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}http://senpy.gsi.upm.es/api/contexts/YXBpL3NlbnRpbWVudDE0MD9pbnB1dD1TZW5weStpcyt0aGUrYmVzdCtmcmFtZXdvcmsrZm9yK3NlbWFudGljK3NlbnRpbWVudCthbmFseXNpcyUyQythbmQrdmVyeStlYXN5K3RvK3VzZSZ2ZXJib3NlPVRydWUj\\PYZdq{}}\\PY{p}{,}\n",
       "  \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Results\\PYZdq{}}\\PY{p}{,}\n",
       "  \\PY{n+nt}{\\PYZdq{}activities\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "    \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}prefix:Analysis\\PYZus{}1563369541.408701\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Analysis\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}marl:maxPolarityValue\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mi}{1}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}marl:minPolarityValue\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mi}{0}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}prov:used\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Parameter\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}name\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}input\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}value\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Senpy is the best framework for semantic sentiment analysis, and very easy to use\\PYZdq{}}\n",
       "        \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Parameter\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}name\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}verbose\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}value\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\n",
       "        \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Parameter\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}name\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}in\\PYZhy{}headers\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}value\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{false}\n",
       "        \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Parameter\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}name\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}algorithm\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}value\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}default\\PYZdq{}}\n",
       "        \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Parameter\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}name\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}expanded\\PYZhy{}jsonld\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}value\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{false}\n",
       "        \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Parameter\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}name\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}with\\PYZhy{}parameters\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}value\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{false}\n",
       "        \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Parameter\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}name\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}outformat\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}value\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}json\\PYZhy{}ld\\PYZdq{}}\n",
       "        \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Parameter\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}name\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}help\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}value\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{false}\n",
       "        \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Parameter\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}name\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}value\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{false}\n",
       "        \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Parameter\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}name\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}conversion\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}value\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}full\\PYZdq{}}\n",
       "        \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Parameter\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}name\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}intype\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}value\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}direct\\PYZdq{}}\n",
       "        \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Parameter\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}name\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}informat\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}value\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}text\\PYZdq{}}\n",
       "        \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Parameter\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}name\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}prefix\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}value\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}\\PYZdq{}}\n",
       "        \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Parameter\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}name\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}urischeme\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}value\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}RFC5147String\\PYZdq{}}\n",
       "        \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Parameter\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}name\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}language\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}value\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}auto\\PYZdq{}}\n",
       "        \\PY{p}{\\PYZcb{}}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}prov:wasAssociatedWith\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}endpoint:plugins/sentiment140\\PYZus{}0.2\\PYZdq{}}\n",
       "    \\PY{p}{\\PYZcb{}}\n",
       "  \\PY{p}{]}\\PY{p}{,}\n",
       "  \\PY{n+nt}{\\PYZdq{}entries\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "    \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}prefix:\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Entry\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}marl:hasOpinion\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Sentiment\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}marl:hasPolarity\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}marl:Positive\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}prov:wasGeneratedBy\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}prefix:Analysis\\PYZus{}1563369541.408701\\PYZdq{}}\n",
       "        \\PY{p}{\\PYZcb{}}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}nif:isString\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Senpy is the best framework for semantic sentiment analysis, and very easy to use\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}onyx:hasEmotionSet\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\\PY{p}{]}\n",
       "    \\PY{p}{\\PYZcb{}}\n",
       "  \\PY{p}{]}\n",
       "\\PY{p}{\\PYZcb{}}\n",
       "\\end{Verbatim}\n"
      ],
      "text/plain": [
       "{\n",
       "  \"@context\": \"http://senpy.gsi.upm.es/api/contexts/YXBpL3NlbnRpbWVudDE0MD9pbnB1dD1TZW5weStpcyt0aGUrYmVzdCtmcmFtZXdvcmsrZm9yK3NlbWFudGljK3NlbnRpbWVudCthbmFseXNpcyUyQythbmQrdmVyeStlYXN5K3RvK3VzZSZ2ZXJib3NlPVRydWUj\",\n",
       "  \"@type\": \"Results\",\n",
       "  \"activities\": [\n",
       "    {\n",
       "      \"@id\": \"prefix:Analysis_1563369541.408701\",\n",
       "      \"@type\": \"Analysis\",\n",
       "      \"marl:maxPolarityValue\": 1,\n",
       "      \"marl:minPolarityValue\": 0,\n",
       "      \"prov:used\": [\n",
       "        {\n",
       "          \"@type\": \"Parameter\",\n",
       "          \"name\": \"input\",\n",
       "          \"value\": \"Senpy is the best framework for semantic sentiment analysis, and very easy to use\"\n",
       "        },\n",
       "        {\n",
       "          \"@type\": \"Parameter\",\n",
       "          \"name\": \"verbose\",\n",
       "          \"value\": true\n",
       "        },\n",
       "        {\n",
       "          \"@type\": \"Parameter\",\n",
       "          \"name\": \"in-headers\",\n",
       "          \"value\": false\n",
       "        },\n",
       "        {\n",
       "          \"@type\": \"Parameter\",\n",
       "          \"name\": \"algorithm\",\n",
       "          \"value\": \"default\"\n",
       "        },\n",
       "        {\n",
       "          \"@type\": \"Parameter\",\n",
       "          \"name\": \"expanded-jsonld\",\n",
       "          \"value\": false\n",
       "        },\n",
       "        {\n",
       "          \"@type\": \"Parameter\",\n",
       "          \"name\": \"with-parameters\",\n",
       "          \"value\": false\n",
       "        },\n",
       "        {\n",
       "          \"@type\": \"Parameter\",\n",
       "          \"name\": \"outformat\",\n",
       "          \"value\": \"json-ld\"\n",
       "        },\n",
       "        {\n",
       "          \"@type\": \"Parameter\",\n",
       "          \"name\": \"help\",\n",
       "          \"value\": false\n",
       "        },\n",
       "        {\n",
       "          \"@type\": \"Parameter\",\n",
       "          \"name\": \"aliases\",\n",
       "          \"value\": false\n",
       "        },\n",
       "        {\n",
       "          \"@type\": \"Parameter\",\n",
       "          \"name\": \"conversion\",\n",
       "          \"value\": \"full\"\n",
       "        },\n",
       "        {\n",
       "          \"@type\": \"Parameter\",\n",
       "          \"name\": \"intype\",\n",
       "          \"value\": \"direct\"\n",
       "        },\n",
       "        {\n",
       "          \"@type\": \"Parameter\",\n",
       "          \"name\": \"informat\",\n",
       "          \"value\": \"text\"\n",
       "        },\n",
       "        {\n",
       "          \"@type\": \"Parameter\",\n",
       "          \"name\": \"prefix\",\n",
       "          \"value\": \"\"\n",
       "        },\n",
       "        {\n",
       "          \"@type\": \"Parameter\",\n",
       "          \"name\": \"urischeme\",\n",
       "          \"value\": \"RFC5147String\"\n",
       "        },\n",
       "        {\n",
       "          \"@type\": \"Parameter\",\n",
       "          \"name\": \"language\",\n",
       "          \"value\": \"auto\"\n",
       "        }\n",
       "      ],\n",
       "      \"prov:wasAssociatedWith\": \"endpoint:plugins/sentiment140_0.2\"\n",
       "    }\n",
       "  ],\n",
       "  \"entries\": [\n",
       "    {\n",
       "      \"@id\": \"prefix:\",\n",
       "      \"@type\": \"Entry\",\n",
       "      \"marl:hasOpinion\": [\n",
       "        {\n",
       "          \"@type\": \"Sentiment\",\n",
       "          \"marl:hasPolarity\": \"marl:Positive\",\n",
       "          \"prov:wasGeneratedBy\": \"prefix:Analysis_1563369541.408701\"\n",
       "        }\n",
       "      ],\n",
       "      \"nif:isString\": \"Senpy is the best framework for semantic sentiment analysis, and very easy to use\",\n",
       "      \"onyx:hasEmotionSet\": []\n",
       "    }\n",
       "  ]\n",
       "}"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "query(f'{endpoint}/sentiment140',\n",
    "      input=\"Senpy is the best framework for semantic sentiment analysis, and very easy to use\",\n",
    "      verbose=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Getting help"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>.output_html .hll { background-color: #ffffcc }\n",
       ".output_html  { background: #f8f8f8; }\n",
       ".output_html .c { color: #408080; font-style: italic } /* Comment */\n",
       ".output_html .err { border: 1px solid #FF0000 } /* Error */\n",
       ".output_html .k { color: #008000; font-weight: bold } /* Keyword */\n",
       ".output_html .o { color: #666666 } /* Operator */\n",
       ".output_html .ch { color: #408080; font-style: italic } /* Comment.Hashbang */\n",
       ".output_html .cm { color: #408080; font-style: italic } /* Comment.Multiline */\n",
       ".output_html .cp { color: #BC7A00 } /* Comment.Preproc */\n",
       ".output_html .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */\n",
       ".output_html .c1 { color: #408080; font-style: italic } /* Comment.Single */\n",
       ".output_html .cs { color: #408080; font-style: italic } /* Comment.Special */\n",
       ".output_html .gd { color: #A00000 } /* Generic.Deleted */\n",
       ".output_html .ge { font-style: italic } /* Generic.Emph */\n",
       ".output_html .gr { color: #FF0000 } /* Generic.Error */\n",
       ".output_html .gh { color: #000080; font-weight: bold } /* Generic.Heading */\n",
       ".output_html .gi { color: #00A000 } /* Generic.Inserted */\n",
       ".output_html .go { color: #888888 } /* Generic.Output */\n",
       ".output_html .gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n",
       ".output_html .gs { font-weight: bold } /* Generic.Strong */\n",
       ".output_html .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n",
       ".output_html .gt { color: #0044DD } /* Generic.Traceback */\n",
       ".output_html .kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n",
       ".output_html .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n",
       ".output_html .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n",
       ".output_html .kp { color: #008000 } /* Keyword.Pseudo */\n",
       ".output_html .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n",
       ".output_html .kt { color: #B00040 } /* Keyword.Type */\n",
       ".output_html .m { color: #666666 } /* Literal.Number */\n",
       ".output_html .s { color: #BA2121 } /* Literal.String */\n",
       ".output_html .na { color: #7D9029 } /* Name.Attribute */\n",
       ".output_html .nb { color: #008000 } /* Name.Builtin */\n",
       ".output_html .nc { color: #0000FF; font-weight: bold } /* Name.Class */\n",
       ".output_html .no { color: #880000 } /* Name.Constant */\n",
       ".output_html .nd { color: #AA22FF } /* Name.Decorator */\n",
       ".output_html .ni { color: #999999; font-weight: bold } /* Name.Entity */\n",
       ".output_html .ne { color: #D2413A; font-weight: bold } /* Name.Exception */\n",
       ".output_html .nf { color: #0000FF } /* Name.Function */\n",
       ".output_html .nl { color: #A0A000 } /* Name.Label */\n",
       ".output_html .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */\n",
       ".output_html .nt { color: #008000; font-weight: bold } /* Name.Tag */\n",
       ".output_html .nv { color: #19177C } /* Name.Variable */\n",
       ".output_html .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */\n",
       ".output_html .w { color: #bbbbbb } /* Text.Whitespace */\n",
       ".output_html .mb { color: #666666 } /* Literal.Number.Bin */\n",
       ".output_html .mf { color: #666666 } /* Literal.Number.Float */\n",
       ".output_html .mh { color: #666666 } /* Literal.Number.Hex */\n",
       ".output_html .mi { color: #666666 } /* Literal.Number.Integer */\n",
       ".output_html .mo { color: #666666 } /* Literal.Number.Oct */\n",
       ".output_html .sa { color: #BA2121 } /* Literal.String.Affix */\n",
       ".output_html .sb { color: #BA2121 } /* Literal.String.Backtick */\n",
       ".output_html .sc { color: #BA2121 } /* Literal.String.Char */\n",
       ".output_html .dl { color: #BA2121 } /* Literal.String.Delimiter */\n",
       ".output_html .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n",
       ".output_html .s2 { color: #BA2121 } /* Literal.String.Double */\n",
       ".output_html .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */\n",
       ".output_html .sh { color: #BA2121 } /* Literal.String.Heredoc */\n",
       ".output_html .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */\n",
       ".output_html .sx { color: #008000 } /* Literal.String.Other */\n",
       ".output_html .sr { color: #BB6688 } /* Literal.String.Regex */\n",
       ".output_html .s1 { color: #BA2121 } /* Literal.String.Single */\n",
       ".output_html .ss { color: #19177C } /* Literal.String.Symbol */\n",
       ".output_html .bp { color: #008000 } /* Name.Builtin.Pseudo */\n",
       ".output_html .fm { color: #0000FF } /* Name.Function.Magic */\n",
       ".output_html .vc { color: #19177C } /* Name.Variable.Class */\n",
       ".output_html .vg { color: #19177C } /* Name.Variable.Global */\n",
       ".output_html .vi { color: #19177C } /* Name.Variable.Instance */\n",
       ".output_html .vm { color: #19177C } /* Name.Variable.Magic */\n",
       ".output_html .il { color: #666666 } /* Literal.Number.Integer.Long */</style><div class=\"highlight\"><pre><span></span><span class=\"p\">{</span>\n",
       "  <span class=\"nd\">&quot;@context&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;http://senpy.gsi.upm.es/api/contexts/YXBpLz9oZWxwPVRydWUj&quot;</span><span class=\"p\">,</span>\n",
       "  <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Help&quot;</span><span class=\"p\">,</span>\n",
       "  <span class=\"nt\">&quot;valid_parameters&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "    <span class=\"nt\">&quot;algorithm&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "      <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"s2\">&quot;algorithms&quot;</span><span class=\"p\">,</span>\n",
       "        <span class=\"s2\">&quot;a&quot;</span><span class=\"p\">,</span>\n",
       "        <span class=\"s2\">&quot;algo&quot;</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;default&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Algorithms that will be used to process the request.It may be a list of comma-separated names.&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;processor&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;string_to_tuple&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;aliases&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[],</span>\n",
       "      <span class=\"nt\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"kc\">false</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Replace JSON properties with their aliases&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;options&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"kc\">true</span><span class=\"p\">,</span>\n",
       "        <span class=\"kc\">false</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"nt\">&quot;conversion&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;conversion&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;full&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;How to show the elements that have (not) been converted.\\n\\n* full: converted and original elements will appear side-by-side\\n* filtered: only converted elements will be shown\\n* nested: converted elements will be shown, and they will include a link to the original element\\n(using `prov:wasGeneratedBy`).\\n&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;options&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"s2\">&quot;filtered&quot;</span><span class=\"p\">,</span>\n",
       "        <span class=\"s2\">&quot;nested&quot;</span><span class=\"p\">,</span>\n",
       "        <span class=\"s2\">&quot;full&quot;</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"nt\">&quot;emotion-model&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;emotionModel&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"s2\">&quot;emoModel&quot;</span><span class=\"p\">,</span>\n",
       "        <span class=\"s2\">&quot;emotionModel&quot;</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Emotion model to use in the response.\\nSenpy will try to convert the output to this model automatically.\\n\\nExamples: `wna:liking` and `emoml:big6`.\\n        &quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">false</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"nt\">&quot;expanded-jsonld&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;expanded-jsonld&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"s2\">&quot;expanded&quot;</span><span class=\"p\">,</span>\n",
       "        <span class=\"s2\">&quot;expanded_jsonld&quot;</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"kc\">false</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;use JSON-LD expansion to get full URIs&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;options&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"kc\">true</span><span class=\"p\">,</span>\n",
       "        <span class=\"kc\">false</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"nt\">&quot;fields&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;fields&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;A jmespath selector, that can be used to extract a new dictionary, array or value\\nfrom the results.\\njmespath is a powerful query language for json and/or dictionaries.\\nIt allows you to change the structure (and data) of your objects through queries.\\n\\ne.g., the following expression gets a list of `[emotion label, intensity]` for each entry:\\n`entries[].\\&quot;onyx:hasEmotionSet\\&quot;[].\\&quot;onyx:hasEmotion\\&quot;[][\\&quot;onyx:hasEmotionCategory\\&quot;,\\&quot;onyx:hasEmotionIntensity\\&quot;]`\\n\\nFor more information, see: https://jmespath.org\\n\\n&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">false</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"nt\">&quot;help&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;help&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"s2\">&quot;h&quot;</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"kc\">false</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Show additional help to know more about the possible parameters&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;options&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"kc\">true</span><span class=\"p\">,</span>\n",
       "        <span class=\"kc\">false</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"nt\">&quot;in-headers&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "      <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"s2\">&quot;headers&quot;</span><span class=\"p\">,</span>\n",
       "        <span class=\"s2\">&quot;inheaders&quot;</span><span class=\"p\">,</span>\n",
       "        <span class=\"s2\">&quot;inHeaders&quot;</span><span class=\"p\">,</span>\n",
       "        <span class=\"s2\">&quot;in-headers&quot;</span><span class=\"p\">,</span>\n",
       "        <span class=\"s2\">&quot;in_headers&quot;</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"kc\">false</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Only include the JSON-LD context in the headers&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;options&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"kc\">true</span><span class=\"p\">,</span>\n",
       "        <span class=\"kc\">false</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"nt\">&quot;informat&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;informat&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"s2\">&quot;f&quot;</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;text&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;input format&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;options&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"s2\">&quot;text&quot;</span><span class=\"p\">,</span>\n",
       "        <span class=\"s2\">&quot;json-ld&quot;</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">false</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"nt\">&quot;input&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;input&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"s2\">&quot;i&quot;</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;help&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Input text&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"nt\">&quot;intype&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;intype&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"s2\">&quot;t&quot;</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;direct&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;input type&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;options&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"s2\">&quot;direct&quot;</span><span class=\"p\">,</span>\n",
       "        <span class=\"s2\">&quot;url&quot;</span><span class=\"p\">,</span>\n",
       "        <span class=\"s2\">&quot;file&quot;</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">false</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"nt\">&quot;language&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "      <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"s2\">&quot;language&quot;</span><span class=\"p\">,</span>\n",
       "        <span class=\"s2\">&quot;l&quot;</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;en&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;language of the input&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;options&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"s2\">&quot;es&quot;</span><span class=\"p\">,</span>\n",
       "        <span class=\"s2\">&quot;en&quot;</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"nt\">&quot;outformat&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;outformat&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"s2\">&quot;o&quot;</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;json-ld&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;The data can be semantically formatted (JSON-LD, turtle or n-triples),\\ngiven as a list of comma-separated fields (see the fields option) or constructed from a Jinja2\\ntemplate (see the template option).&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;options&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"s2\">&quot;json-ld&quot;</span><span class=\"p\">,</span>\n",
       "        <span class=\"s2\">&quot;turtle&quot;</span><span class=\"p\">,</span>\n",
       "        <span class=\"s2\">&quot;ntriples&quot;</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"nt\">&quot;prefix&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;prefix&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"s2\">&quot;p&quot;</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;prefix to use for new entities&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"nt\">&quot;template&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;template&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Jinja2 template for the result. The input data for the template will\\nbe the results as a dictionary.\\nFor example:\\n\\nConsider the results before templating:\\n\\n```\\n[{\\n    \\&quot;@type\\&quot;: \\&quot;entry\\&quot;,\\n    \\&quot;onyx:hasEmotionSet\\&quot;: [],\\n    \\&quot;nif:isString\\&quot;: \\&quot;testing the template\\&quot;,\\n    \\&quot;marl:hasOpinion\\&quot;: [\\n        {\\n            \\&quot;@type\\&quot;: \\&quot;sentiment\\&quot;,\\n            \\&quot;marl:hasPolarity\\&quot;: \\&quot;marl:Positive\\&quot;\\n        }\\n    ]\\n}]\\n```\\n\\n\\nAnd the template:\\n\\n```\\n{% for entry in entries %}\\n{{ entry[\\&quot;nif:isString\\&quot;] | upper }},{{entry.sentiments[0][\\&quot;marl:hasPolarity\\&quot;].split(\\&quot;:\\&quot;)[1]}}\\n{% endfor %}\\n```\\n\\nThe final result would be:\\n\\n```\\nTESTING THE TEMPLATE,Positive\\n```\\n&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">false</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"nt\">&quot;urischeme&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;urischeme&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"s2\">&quot;u&quot;</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;RFC5147String&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;scheme for NIF URIs&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;options&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"s2\">&quot;RFC5147String&quot;</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">false</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"nt\">&quot;verbose&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;verbose&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"s2\">&quot;v&quot;</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"kc\">false</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Show all properties in the result&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;options&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"kc\">true</span><span class=\"p\">,</span>\n",
       "        <span class=\"kc\">false</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span>\n",
       "    <span class=\"p\">},</span>\n",
       "    <span class=\"nt\">&quot;with-parameters&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span>\n",
       "      <span class=\"nt\">&quot;aliases&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"s2\">&quot;withparameters&quot;</span><span class=\"p\">,</span>\n",
       "        <span class=\"s2\">&quot;with_parameters&quot;</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;default&quot;</span><span class=\"p\">:</span> <span class=\"kc\">false</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;description&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;include initial parameters in the response&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;options&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"kc\">true</span><span class=\"p\">,</span>\n",
       "        <span class=\"kc\">false</span>\n",
       "      <span class=\"p\">],</span>\n",
       "      <span class=\"nt\">&quot;required&quot;</span><span class=\"p\">:</span> <span class=\"kc\">true</span>\n",
       "    <span class=\"p\">}</span>\n",
       "  <span class=\"p\">}</span>\n",
       "<span class=\"p\">}</span>\n",
       "</pre></div>\n"
      ],
      "text/latex": [
       "\\begin{Verbatim}[commandchars=\\\\\\{\\}]\n",
       "\\PY{p}{\\PYZob{}}\n",
       "  \\PY{n+nd}{\\PYZdq{}@context\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}http://senpy.gsi.upm.es/api/contexts/YXBpLz9oZWxwPVRydWUj\\PYZdq{}}\\PY{p}{,}\n",
       "  \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Help\\PYZdq{}}\\PY{p}{,}\n",
       "  \\PY{n+nt}{\\PYZdq{}valid\\PYZus{}parameters\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "    \\PY{n+nt}{\\PYZdq{}algorithm\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}algorithms\\PYZdq{}}\\PY{p}{,}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}a\\PYZdq{}}\\PY{p}{,}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}algo\\PYZdq{}}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}default\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}default\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Algorithms that will be used to process the request.It may be a list of comma\\PYZhy{}separated names.\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}processor\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}string\\PYZus{}to\\PYZus{}tuple\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}required\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}default\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{false}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Replace JSON properties with their aliases\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}options\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{k+kc}{true}\\PY{p}{,}\n",
       "        \\PY{k+kc}{false}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}required\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{n+nt}{\\PYZdq{}conversion\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}conversion\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}default\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}full\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}How to show the elements that have (not) been converted.\\PYZbs{}n\\PYZbs{}n* full: converted and original elements will appear side\\PYZhy{}by\\PYZhy{}side\\PYZbs{}n* filtered: only converted elements will be shown\\PYZbs{}n* nested: converted elements will be shown, and they will include a link to the original element\\PYZbs{}n(using `prov:wasGeneratedBy`).\\PYZbs{}n\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}options\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}filtered\\PYZdq{}}\\PY{p}{,}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}nested\\PYZdq{}}\\PY{p}{,}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}full\\PYZdq{}}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}required\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{n+nt}{\\PYZdq{}emotion\\PYZhy{}model\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}emotionModel\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}emoModel\\PYZdq{}}\\PY{p}{,}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}emotionModel\\PYZdq{}}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Emotion model to use in the response.\\PYZbs{}nSenpy will try to convert the output to this model automatically.\\PYZbs{}n\\PYZbs{}nExamples: `wna:liking` and `emoml:big6`.\\PYZbs{}n        \\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}required\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{false}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{n+nt}{\\PYZdq{}expanded\\PYZhy{}jsonld\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}expanded\\PYZhy{}jsonld\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}expanded\\PYZdq{}}\\PY{p}{,}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}expanded\\PYZus{}jsonld\\PYZdq{}}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}default\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{false}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}use JSON\\PYZhy{}LD expansion to get full URIs\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}options\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{k+kc}{true}\\PY{p}{,}\n",
       "        \\PY{k+kc}{false}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}required\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{n+nt}{\\PYZdq{}fields\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}fields\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}A jmespath selector, that can be used to extract a new dictionary, array or value\\PYZbs{}nfrom the results.\\PYZbs{}njmespath is a powerful query language for json and/or dictionaries.\\PYZbs{}nIt allows you to change the structure (and data) of your objects through queries.\\PYZbs{}n\\PYZbs{}ne.g., the following expression gets a list of `[emotion label, intensity]` for each entry:\\PYZbs{}n`entries[].\\PYZbs{}\\PYZdq{}onyx:hasEmotionSet\\PYZbs{}\\PYZdq{}[].\\PYZbs{}\\PYZdq{}onyx:hasEmotion\\PYZbs{}\\PYZdq{}[][\\PYZbs{}\\PYZdq{}onyx:hasEmotionCategory\\PYZbs{}\\PYZdq{},\\PYZbs{}\\PYZdq{}onyx:hasEmotionIntensity\\PYZbs{}\\PYZdq{}]`\\PYZbs{}n\\PYZbs{}nFor more information, see: https://jmespath.org\\PYZbs{}n\\PYZbs{}n\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}required\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{false}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{n+nt}{\\PYZdq{}help\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}help\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}h\\PYZdq{}}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}default\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{false}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Show additional help to know more about the possible parameters\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}options\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{k+kc}{true}\\PY{p}{,}\n",
       "        \\PY{k+kc}{false}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}required\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{n+nt}{\\PYZdq{}in\\PYZhy{}headers\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}headers\\PYZdq{}}\\PY{p}{,}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}inheaders\\PYZdq{}}\\PY{p}{,}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}inHeaders\\PYZdq{}}\\PY{p}{,}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}in\\PYZhy{}headers\\PYZdq{}}\\PY{p}{,}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}in\\PYZus{}headers\\PYZdq{}}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}default\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{false}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Only include the JSON\\PYZhy{}LD context in the headers\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}options\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{k+kc}{true}\\PY{p}{,}\n",
       "        \\PY{k+kc}{false}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}required\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{n+nt}{\\PYZdq{}informat\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}informat\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}f\\PYZdq{}}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}default\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}text\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}input format\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}options\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}text\\PYZdq{}}\\PY{p}{,}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}json\\PYZhy{}ld\\PYZdq{}}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}required\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{false}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{n+nt}{\\PYZdq{}input\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}input\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}i\\PYZdq{}}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}help\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Input text\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}required\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{n+nt}{\\PYZdq{}intype\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}intype\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}t\\PYZdq{}}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}default\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}direct\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}input type\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}options\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}direct\\PYZdq{}}\\PY{p}{,}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}url\\PYZdq{}}\\PY{p}{,}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}file\\PYZdq{}}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}required\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{false}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{n+nt}{\\PYZdq{}language\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}language\\PYZdq{}}\\PY{p}{,}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}l\\PYZdq{}}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}default\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}en\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}language of the input\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}options\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}es\\PYZdq{}}\\PY{p}{,}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}en\\PYZdq{}}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}required\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{n+nt}{\\PYZdq{}outformat\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}outformat\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}o\\PYZdq{}}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}default\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}json\\PYZhy{}ld\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}The data can be semantically formatted (JSON\\PYZhy{}LD, turtle or n\\PYZhy{}triples),\\PYZbs{}ngiven as a list of comma\\PYZhy{}separated fields (see the fields option) or constructed from a Jinja2\\PYZbs{}ntemplate (see the template option).\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}options\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}json\\PYZhy{}ld\\PYZdq{}}\\PY{p}{,}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}turtle\\PYZdq{}}\\PY{p}{,}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}ntriples\\PYZdq{}}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}required\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{n+nt}{\\PYZdq{}prefix\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}prefix\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}p\\PYZdq{}}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}default\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}prefix to use for new entities\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}required\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{n+nt}{\\PYZdq{}template\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}template\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Jinja2 template for the result. The input data for the template will\\PYZbs{}nbe the results as a dictionary.\\PYZbs{}nFor example:\\PYZbs{}n\\PYZbs{}nConsider the results before templating:\\PYZbs{}n\\PYZbs{}n```\\PYZbs{}n[\\PYZob{}\\PYZbs{}n    \\PYZbs{}\\PYZdq{}@type\\PYZbs{}\\PYZdq{}: \\PYZbs{}\\PYZdq{}entry\\PYZbs{}\\PYZdq{},\\PYZbs{}n    \\PYZbs{}\\PYZdq{}onyx:hasEmotionSet\\PYZbs{}\\PYZdq{}: [],\\PYZbs{}n    \\PYZbs{}\\PYZdq{}nif:isString\\PYZbs{}\\PYZdq{}: \\PYZbs{}\\PYZdq{}testing the template\\PYZbs{}\\PYZdq{},\\PYZbs{}n    \\PYZbs{}\\PYZdq{}marl:hasOpinion\\PYZbs{}\\PYZdq{}: [\\PYZbs{}n        \\PYZob{}\\PYZbs{}n            \\PYZbs{}\\PYZdq{}@type\\PYZbs{}\\PYZdq{}: \\PYZbs{}\\PYZdq{}sentiment\\PYZbs{}\\PYZdq{},\\PYZbs{}n            \\PYZbs{}\\PYZdq{}marl:hasPolarity\\PYZbs{}\\PYZdq{}: \\PYZbs{}\\PYZdq{}marl:Positive\\PYZbs{}\\PYZdq{}\\PYZbs{}n        \\PYZcb{}\\PYZbs{}n    ]\\PYZbs{}n\\PYZcb{}]\\PYZbs{}n```\\PYZbs{}n\\PYZbs{}n\\PYZbs{}nAnd the template:\\PYZbs{}n\\PYZbs{}n```\\PYZbs{}n\\PYZob{}\\PYZpc{} for entry in entries \\PYZpc{}\\PYZcb{}\\PYZbs{}n\\PYZob{}\\PYZob{} entry[\\PYZbs{}\\PYZdq{}nif:isString\\PYZbs{}\\PYZdq{}] | upper \\PYZcb{}\\PYZcb{},\\PYZob{}\\PYZob{}entry.sentiments[0][\\PYZbs{}\\PYZdq{}marl:hasPolarity\\PYZbs{}\\PYZdq{}].split(\\PYZbs{}\\PYZdq{}:\\PYZbs{}\\PYZdq{})[1]\\PYZcb{}\\PYZcb{}\\PYZbs{}n\\PYZob{}\\PYZpc{} endfor \\PYZpc{}\\PYZcb{}\\PYZbs{}n```\\PYZbs{}n\\PYZbs{}nThe final result would be:\\PYZbs{}n\\PYZbs{}n```\\PYZbs{}nTESTING THE TEMPLATE,Positive\\PYZbs{}n```\\PYZbs{}n\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}required\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{false}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{n+nt}{\\PYZdq{}urischeme\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}urischeme\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}u\\PYZdq{}}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}default\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}RFC5147String\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}scheme for NIF URIs\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}options\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}RFC5147String\\PYZdq{}}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}required\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{false}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{n+nt}{\\PYZdq{}verbose\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}verbose\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}v\\PYZdq{}}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}default\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{false}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Show all properties in the result\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}options\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{k+kc}{true}\\PY{p}{,}\n",
       "        \\PY{k+kc}{false}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}required\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\n",
       "    \\PY{p}{\\PYZcb{}}\\PY{p}{,}\n",
       "    \\PY{n+nt}{\\PYZdq{}with\\PYZhy{}parameters\\PYZdq{}}\\PY{p}{:} \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nt}{\\PYZdq{}aliases\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}withparameters\\PYZdq{}}\\PY{p}{,}\n",
       "        \\PY{l+s+s2}{\\PYZdq{}with\\PYZus{}parameters\\PYZdq{}}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}default\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{false}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}description\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}include initial parameters in the response\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}options\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{k+kc}{true}\\PY{p}{,}\n",
       "        \\PY{k+kc}{false}\n",
       "      \\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}required\\PYZdq{}}\\PY{p}{:} \\PY{k+kc}{true}\n",
       "    \\PY{p}{\\PYZcb{}}\n",
       "  \\PY{p}{\\PYZcb{}}\n",
       "\\PY{p}{\\PYZcb{}}\n",
       "\\end{Verbatim}\n"
      ],
      "text/plain": [
       "{\n",
       "  \"@context\": \"http://senpy.gsi.upm.es/api/contexts/YXBpLz9oZWxwPVRydWUj\",\n",
       "  \"@type\": \"Help\",\n",
       "  \"valid_parameters\": {\n",
       "    \"algorithm\": {\n",
       "      \"aliases\": [\n",
       "        \"algorithms\",\n",
       "        \"a\",\n",
       "        \"algo\"\n",
       "      ],\n",
       "      \"default\": \"default\",\n",
       "      \"description\": \"Algorithms that will be used to process the request.It may be a list of comma-separated names.\",\n",
       "      \"processor\": \"string_to_tuple\",\n",
       "      \"required\": true\n",
       "    },\n",
       "    \"aliases\": {\n",
       "      \"@id\": \"aliases\",\n",
       "      \"aliases\": [],\n",
       "      \"default\": false,\n",
       "      \"description\": \"Replace JSON properties with their aliases\",\n",
       "      \"options\": [\n",
       "        true,\n",
       "        false\n",
       "      ],\n",
       "      \"required\": true\n",
       "    },\n",
       "    \"conversion\": {\n",
       "      \"@id\": \"conversion\",\n",
       "      \"default\": \"full\",\n",
       "      \"description\": \"How to show the elements that have (not) been converted.\\n\\n* full: converted and original elements will appear side-by-side\\n* filtered: only converted elements will be shown\\n* nested: converted elements will be shown, and they will include a link to the original element\\n(using `prov:wasGeneratedBy`).\\n\",\n",
       "      \"options\": [\n",
       "        \"filtered\",\n",
       "        \"nested\",\n",
       "        \"full\"\n",
       "      ],\n",
       "      \"required\": true\n",
       "    },\n",
       "    \"emotion-model\": {\n",
       "      \"@id\": \"emotionModel\",\n",
       "      \"aliases\": [\n",
       "        \"emoModel\",\n",
       "        \"emotionModel\"\n",
       "      ],\n",
       "      \"description\": \"Emotion model to use in the response.\\nSenpy will try to convert the output to this model automatically.\\n\\nExamples: `wna:liking` and `emoml:big6`.\\n        \",\n",
       "      \"required\": false\n",
       "    },\n",
       "    \"expanded-jsonld\": {\n",
       "      \"@id\": \"expanded-jsonld\",\n",
       "      \"aliases\": [\n",
       "        \"expanded\",\n",
       "        \"expanded_jsonld\"\n",
       "      ],\n",
       "      \"default\": false,\n",
       "      \"description\": \"use JSON-LD expansion to get full URIs\",\n",
       "      \"options\": [\n",
       "        true,\n",
       "        false\n",
       "      ],\n",
       "      \"required\": true\n",
       "    },\n",
       "    \"fields\": {\n",
       "      \"@id\": \"fields\",\n",
       "      \"description\": \"A jmespath selector, that can be used to extract a new dictionary, array or value\\nfrom the results.\\njmespath is a powerful query language for json and/or dictionaries.\\nIt allows you to change the structure (and data) of your objects through queries.\\n\\ne.g., the following expression gets a list of `[emotion label, intensity]` for each entry:\\n`entries[].\\\"onyx:hasEmotionSet\\\"[].\\\"onyx:hasEmotion\\\"[][\\\"onyx:hasEmotionCategory\\\",\\\"onyx:hasEmotionIntensity\\\"]`\\n\\nFor more information, see: https://jmespath.org\\n\\n\",\n",
       "      \"required\": false\n",
       "    },\n",
       "    \"help\": {\n",
       "      \"@id\": \"help\",\n",
       "      \"aliases\": [\n",
       "        \"h\"\n",
       "      ],\n",
       "      \"default\": false,\n",
       "      \"description\": \"Show additional help to know more about the possible parameters\",\n",
       "      \"options\": [\n",
       "        true,\n",
       "        false\n",
       "      ],\n",
       "      \"required\": true\n",
       "    },\n",
       "    \"in-headers\": {\n",
       "      \"aliases\": [\n",
       "        \"headers\",\n",
       "        \"inheaders\",\n",
       "        \"inHeaders\",\n",
       "        \"in-headers\",\n",
       "        \"in_headers\"\n",
       "      ],\n",
       "      \"default\": false,\n",
       "      \"description\": \"Only include the JSON-LD context in the headers\",\n",
       "      \"options\": [\n",
       "        true,\n",
       "        false\n",
       "      ],\n",
       "      \"required\": true\n",
       "    },\n",
       "    \"informat\": {\n",
       "      \"@id\": \"informat\",\n",
       "      \"aliases\": [\n",
       "        \"f\"\n",
       "      ],\n",
       "      \"default\": \"text\",\n",
       "      \"description\": \"input format\",\n",
       "      \"options\": [\n",
       "        \"text\",\n",
       "        \"json-ld\"\n",
       "      ],\n",
       "      \"required\": false\n",
       "    },\n",
       "    \"input\": {\n",
       "      \"@id\": \"input\",\n",
       "      \"aliases\": [\n",
       "        \"i\"\n",
       "      ],\n",
       "      \"help\": \"Input text\",\n",
       "      \"required\": true\n",
       "    },\n",
       "    \"intype\": {\n",
       "      \"@id\": \"intype\",\n",
       "      \"aliases\": [\n",
       "        \"t\"\n",
       "      ],\n",
       "      \"default\": \"direct\",\n",
       "      \"description\": \"input type\",\n",
       "      \"options\": [\n",
       "        \"direct\",\n",
       "        \"url\",\n",
       "        \"file\"\n",
       "      ],\n",
       "      \"required\": false\n",
       "    },\n",
       "    \"language\": {\n",
       "      \"aliases\": [\n",
       "        \"language\",\n",
       "        \"l\"\n",
       "      ],\n",
       "      \"default\": \"en\",\n",
       "      \"description\": \"language of the input\",\n",
       "      \"options\": [\n",
       "        \"es\",\n",
       "        \"en\"\n",
       "      ],\n",
       "      \"required\": true\n",
       "    },\n",
       "    \"outformat\": {\n",
       "      \"@id\": \"outformat\",\n",
       "      \"aliases\": [\n",
       "        \"o\"\n",
       "      ],\n",
       "      \"default\": \"json-ld\",\n",
       "      \"description\": \"The data can be semantically formatted (JSON-LD, turtle or n-triples),\\ngiven as a list of comma-separated fields (see the fields option) or constructed from a Jinja2\\ntemplate (see the template option).\",\n",
       "      \"options\": [\n",
       "        \"json-ld\",\n",
       "        \"turtle\",\n",
       "        \"ntriples\"\n",
       "      ],\n",
       "      \"required\": true\n",
       "    },\n",
       "    \"prefix\": {\n",
       "      \"@id\": \"prefix\",\n",
       "      \"aliases\": [\n",
       "        \"p\"\n",
       "      ],\n",
       "      \"default\": \"\",\n",
       "      \"description\": \"prefix to use for new entities\",\n",
       "      \"required\": true\n",
       "    },\n",
       "    \"template\": {\n",
       "      \"@id\": \"template\",\n",
       "      \"description\": \"Jinja2 template for the result. The input data for the template will\\nbe the results as a dictionary.\\nFor example:\\n\\nConsider the results before templating:\\n\\n```\\n[{\\n    \\\"@type\\\": \\\"entry\\\",\\n    \\\"onyx:hasEmotionSet\\\": [],\\n    \\\"nif:isString\\\": \\\"testing the template\\\",\\n    \\\"marl:hasOpinion\\\": [\\n        {\\n            \\\"@type\\\": \\\"sentiment\\\",\\n            \\\"marl:hasPolarity\\\": \\\"marl:Positive\\\"\\n        }\\n    ]\\n}]\\n```\\n\\n\\nAnd the template:\\n\\n```\\n{% for entry in entries %}\\n{{ entry[\\\"nif:isString\\\"] | upper }},{{entry.sentiments[0][\\\"marl:hasPolarity\\\"].split(\\\":\\\")[1]}}\\n{% endfor %}\\n```\\n\\nThe final result would be:\\n\\n```\\nTESTING THE TEMPLATE,Positive\\n```\\n\",\n",
       "      \"required\": false\n",
       "    },\n",
       "    \"urischeme\": {\n",
       "      \"@id\": \"urischeme\",\n",
       "      \"aliases\": [\n",
       "        \"u\"\n",
       "      ],\n",
       "      \"default\": \"RFC5147String\",\n",
       "      \"description\": \"scheme for NIF URIs\",\n",
       "      \"options\": [\n",
       "        \"RFC5147String\"\n",
       "      ],\n",
       "      \"required\": false\n",
       "    },\n",
       "    \"verbose\": {\n",
       "      \"@id\": \"verbose\",\n",
       "      \"aliases\": [\n",
       "        \"v\"\n",
       "      ],\n",
       "      \"default\": false,\n",
       "      \"description\": \"Show all properties in the result\",\n",
       "      \"options\": [\n",
       "        true,\n",
       "        false\n",
       "      ],\n",
       "      \"required\": true\n",
       "    },\n",
       "    \"with-parameters\": {\n",
       "      \"aliases\": [\n",
       "        \"withparameters\",\n",
       "        \"with_parameters\"\n",
       "      ],\n",
       "      \"default\": false,\n",
       "      \"description\": \"include initial parameters in the response\",\n",
       "      \"options\": [\n",
       "        true,\n",
       "        false\n",
       "      ],\n",
       "      \"required\": true\n",
       "    }\n",
       "  }\n",
       "}"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "query(f'{endpoint}/',\n",
    "      help=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Ignoring the context"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>.output_html .hll { background-color: #ffffcc }\n",
       ".output_html  { background: #f8f8f8; }\n",
       ".output_html .c { color: #408080; font-style: italic } /* Comment */\n",
       ".output_html .err { border: 1px solid #FF0000 } /* Error */\n",
       ".output_html .k { color: #008000; font-weight: bold } /* Keyword */\n",
       ".output_html .o { color: #666666 } /* Operator */\n",
       ".output_html .ch { color: #408080; font-style: italic } /* Comment.Hashbang */\n",
       ".output_html .cm { color: #408080; font-style: italic } /* Comment.Multiline */\n",
       ".output_html .cp { color: #BC7A00 } /* Comment.Preproc */\n",
       ".output_html .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */\n",
       ".output_html .c1 { color: #408080; font-style: italic } /* Comment.Single */\n",
       ".output_html .cs { color: #408080; font-style: italic } /* Comment.Special */\n",
       ".output_html .gd { color: #A00000 } /* Generic.Deleted */\n",
       ".output_html .ge { font-style: italic } /* Generic.Emph */\n",
       ".output_html .gr { color: #FF0000 } /* Generic.Error */\n",
       ".output_html .gh { color: #000080; font-weight: bold } /* Generic.Heading */\n",
       ".output_html .gi { color: #00A000 } /* Generic.Inserted */\n",
       ".output_html .go { color: #888888 } /* Generic.Output */\n",
       ".output_html .gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n",
       ".output_html .gs { font-weight: bold } /* Generic.Strong */\n",
       ".output_html .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n",
       ".output_html .gt { color: #0044DD } /* Generic.Traceback */\n",
       ".output_html .kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n",
       ".output_html .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n",
       ".output_html .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n",
       ".output_html .kp { color: #008000 } /* Keyword.Pseudo */\n",
       ".output_html .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n",
       ".output_html .kt { color: #B00040 } /* Keyword.Type */\n",
       ".output_html .m { color: #666666 } /* Literal.Number */\n",
       ".output_html .s { color: #BA2121 } /* Literal.String */\n",
       ".output_html .na { color: #7D9029 } /* Name.Attribute */\n",
       ".output_html .nb { color: #008000 } /* Name.Builtin */\n",
       ".output_html .nc { color: #0000FF; font-weight: bold } /* Name.Class */\n",
       ".output_html .no { color: #880000 } /* Name.Constant */\n",
       ".output_html .nd { color: #AA22FF } /* Name.Decorator */\n",
       ".output_html .ni { color: #999999; font-weight: bold } /* Name.Entity */\n",
       ".output_html .ne { color: #D2413A; font-weight: bold } /* Name.Exception */\n",
       ".output_html .nf { color: #0000FF } /* Name.Function */\n",
       ".output_html .nl { color: #A0A000 } /* Name.Label */\n",
       ".output_html .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */\n",
       ".output_html .nt { color: #008000; font-weight: bold } /* Name.Tag */\n",
       ".output_html .nv { color: #19177C } /* Name.Variable */\n",
       ".output_html .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */\n",
       ".output_html .w { color: #bbbbbb } /* Text.Whitespace */\n",
       ".output_html .mb { color: #666666 } /* Literal.Number.Bin */\n",
       ".output_html .mf { color: #666666 } /* Literal.Number.Float */\n",
       ".output_html .mh { color: #666666 } /* Literal.Number.Hex */\n",
       ".output_html .mi { color: #666666 } /* Literal.Number.Integer */\n",
       ".output_html .mo { color: #666666 } /* Literal.Number.Oct */\n",
       ".output_html .sa { color: #BA2121 } /* Literal.String.Affix */\n",
       ".output_html .sb { color: #BA2121 } /* Literal.String.Backtick */\n",
       ".output_html .sc { color: #BA2121 } /* Literal.String.Char */\n",
       ".output_html .dl { color: #BA2121 } /* Literal.String.Delimiter */\n",
       ".output_html .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n",
       ".output_html .s2 { color: #BA2121 } /* Literal.String.Double */\n",
       ".output_html .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */\n",
       ".output_html .sh { color: #BA2121 } /* Literal.String.Heredoc */\n",
       ".output_html .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */\n",
       ".output_html .sx { color: #008000 } /* Literal.String.Other */\n",
       ".output_html .sr { color: #BB6688 } /* Literal.String.Regex */\n",
       ".output_html .s1 { color: #BA2121 } /* Literal.String.Single */\n",
       ".output_html .ss { color: #19177C } /* Literal.String.Symbol */\n",
       ".output_html .bp { color: #008000 } /* Name.Builtin.Pseudo */\n",
       ".output_html .fm { color: #0000FF } /* Name.Function.Magic */\n",
       ".output_html .vc { color: #19177C } /* Name.Variable.Class */\n",
       ".output_html .vg { color: #19177C } /* Name.Variable.Global */\n",
       ".output_html .vi { color: #19177C } /* Name.Variable.Instance */\n",
       ".output_html .vm { color: #19177C } /* Name.Variable.Magic */\n",
       ".output_html .il { color: #666666 } /* Literal.Number.Integer.Long */</style><div class=\"highlight\"><pre><span></span><span class=\"p\">{</span>\n",
       "  <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Results&quot;</span><span class=\"p\">,</span>\n",
       "  <span class=\"nt\">&quot;entries&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "    <span class=\"p\">{</span>\n",
       "      <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;prefix:&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Entry&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;marl:hasOpinion&quot;</span><span class=\"p\">:</span> <span class=\"p\">[],</span>\n",
       "      <span class=\"nt\">&quot;nif:isString&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;This will tell senpy to only include the context in the headers&quot;</span><span class=\"p\">,</span>\n",
       "      <span class=\"nt\">&quot;onyx:hasEmotionSet&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "        <span class=\"p\">{</span>\n",
       "          <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Emotions0&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;EmotionSet&quot;</span><span class=\"p\">,</span>\n",
       "          <span class=\"nt\">&quot;onyx:hasEmotion&quot;</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n",
       "            <span class=\"p\">{</span>\n",
       "              <span class=\"nd\">&quot;@id&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Emotion0&quot;</span><span class=\"p\">,</span>\n",
       "              <span class=\"nd\">&quot;@type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Emotion&quot;</span><span class=\"p\">,</span>\n",
       "              <span class=\"nt\">&quot;http://www.gsi.dit.upm.es/ontologies/onyx/vocabularies/anew/ns#arousal&quot;</span><span class=\"p\">:</span> <span class=\"mf\">4.22</span><span class=\"p\">,</span>\n",
       "              <span class=\"nt\">&quot;http://www.gsi.dit.upm.es/ontologies/onyx/vocabularies/anew/ns#dominance&quot;</span><span class=\"p\">:</span> <span class=\"mf\">5.17</span><span class=\"p\">,</span>\n",
       "              <span class=\"nt\">&quot;http://www.gsi.dit.upm.es/ontologies/onyx/vocabularies/anew/ns#valence&quot;</span><span class=\"p\">:</span> <span class=\"mf\">5.2</span><span class=\"p\">,</span>\n",
       "              <span class=\"nt\">&quot;prov:wasGeneratedBy&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;prefix:Analysis_1563369541.631805&quot;</span>\n",
       "            <span class=\"p\">}</span>\n",
       "          <span class=\"p\">],</span>\n",
       "          <span class=\"nt\">&quot;prov:wasGeneratedBy&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;prefix:Analysis_1563369541.631805&quot;</span>\n",
       "        <span class=\"p\">}</span>\n",
       "      <span class=\"p\">]</span>\n",
       "    <span class=\"p\">}</span>\n",
       "  <span class=\"p\">]</span>\n",
       "<span class=\"p\">}</span>\n",
       "</pre></div>\n"
      ],
      "text/latex": [
       "\\begin{Verbatim}[commandchars=\\\\\\{\\}]\n",
       "\\PY{p}{\\PYZob{}}\n",
       "  \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Results\\PYZdq{}}\\PY{p}{,}\n",
       "  \\PY{n+nt}{\\PYZdq{}entries\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "    \\PY{p}{\\PYZob{}}\n",
       "      \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}prefix:\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Entry\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}marl:hasOpinion\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\\PY{p}{]}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}nif:isString\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}This will tell senpy to only include the context in the headers\\PYZdq{}}\\PY{p}{,}\n",
       "      \\PY{n+nt}{\\PYZdq{}onyx:hasEmotionSet\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "        \\PY{p}{\\PYZob{}}\n",
       "          \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Emotions0\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}EmotionSet\\PYZdq{}}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}onyx:hasEmotion\\PYZdq{}}\\PY{p}{:} \\PY{p}{[}\n",
       "            \\PY{p}{\\PYZob{}}\n",
       "              \\PY{n+nd}{\\PYZdq{}@id\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Emotion0\\PYZdq{}}\\PY{p}{,}\n",
       "              \\PY{n+nd}{\\PYZdq{}@type\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}Emotion\\PYZdq{}}\\PY{p}{,}\n",
       "              \\PY{n+nt}{\\PYZdq{}http://www.gsi.dit.upm.es/ontologies/onyx/vocabularies/anew/ns\\PYZsh{}arousal\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mf}{4.22}\\PY{p}{,}\n",
       "              \\PY{n+nt}{\\PYZdq{}http://www.gsi.dit.upm.es/ontologies/onyx/vocabularies/anew/ns\\PYZsh{}dominance\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mf}{5.17}\\PY{p}{,}\n",
       "              \\PY{n+nt}{\\PYZdq{}http://www.gsi.dit.upm.es/ontologies/onyx/vocabularies/anew/ns\\PYZsh{}valence\\PYZdq{}}\\PY{p}{:} \\PY{l+m+mf}{5.2}\\PY{p}{,}\n",
       "              \\PY{n+nt}{\\PYZdq{}prov:wasGeneratedBy\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}prefix:Analysis\\PYZus{}1563369541.631805\\PYZdq{}}\n",
       "            \\PY{p}{\\PYZcb{}}\n",
       "          \\PY{p}{]}\\PY{p}{,}\n",
       "          \\PY{n+nt}{\\PYZdq{}prov:wasGeneratedBy\\PYZdq{}}\\PY{p}{:} \\PY{l+s+s2}{\\PYZdq{}prefix:Analysis\\PYZus{}1563369541.631805\\PYZdq{}}\n",
       "        \\PY{p}{\\PYZcb{}}\n",
       "      \\PY{p}{]}\n",
       "    \\PY{p}{\\PYZcb{}}\n",
       "  \\PY{p}{]}\n",
       "\\PY{p}{\\PYZcb{}}\n",
       "\\end{Verbatim}\n"
      ],
      "text/plain": [
       "{\n",
       "  \"@type\": \"Results\",\n",
       "  \"entries\": [\n",
       "    {\n",
       "      \"@id\": \"prefix:\",\n",
       "      \"@type\": \"Entry\",\n",
       "      \"marl:hasOpinion\": [],\n",
       "      \"nif:isString\": \"This will tell senpy to only include the context in the headers\",\n",
       "      \"onyx:hasEmotionSet\": [\n",
       "        {\n",
       "          \"@id\": \"Emotions0\",\n",
       "          \"@type\": \"EmotionSet\",\n",
       "          \"onyx:hasEmotion\": [\n",
       "            {\n",
       "              \"@id\": \"Emotion0\",\n",
       "              \"@type\": \"Emotion\",\n",
       "              \"http://www.gsi.dit.upm.es/ontologies/onyx/vocabularies/anew/ns#arousal\": 4.22,\n",
       "              \"http://www.gsi.dit.upm.es/ontologies/onyx/vocabularies/anew/ns#dominance\": 5.17,\n",
       "              \"http://www.gsi.dit.upm.es/ontologies/onyx/vocabularies/anew/ns#valence\": 5.2,\n",
       "              \"prov:wasGeneratedBy\": \"prefix:Analysis_1563369541.631805\"\n",
       "            }\n",
       "          ],\n",
       "          \"prov:wasGeneratedBy\": \"prefix:Analysis_1563369541.631805\"\n",
       "        }\n",
       "      ]\n",
       "    }\n",
       "  ]\n",
       "}"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "query(f'{endpoint}/',\n",
    "      input=\"This will tell senpy to only include the context in the headers\",\n",
    "      inheaders=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To retrieve the context URI, use the `LINK` header:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<http://senpy.gsi.upm.es/api/contexts/YXBpLz9pbnB1dD1UaGlzK3dpbGwrdGVsbCtzZW5weSt0bytvbmx5K2luY2x1ZGUrdGhlK2NvbnRleHQraW4rdGhlK2hlYWRlcnMmaW5oZWFkZXJzPVRydWUj>;rel=\"http://www.w3.org/ns/json-ld#context\"; type=\"application/ld+json\"\n"
     ]
    }
   ],
   "source": [
    "# We first repeat the query, to get the raw requests response using raw=True\n",
    "res = query(f'{endpoint}/', input=\"This will tell senpy to only include the context in the headers\", inheaders=True, raw=True)\n",
    "\n",
    "# The URI of the context is in the headers:\n",
    "print(res.headers['Link'])"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  },
  "toc": {
   "colors": {
    "hover_highlight": "#DAA520",
    "running_highlight": "#FF0000",
    "selected_highlight": "#FFD700"
   },
   "moveMenuLeft": true,
   "nav_menu": {
    "height": "68px",
    "width": "252px"
   },
   "navigate_menu": true,
   "number_sections": true,
   "sideBar": true,
   "threshold": 4,
   "toc_cell": false,
   "toc_section_display": "block",
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
