Skip to content
Eden Engine

Belgian Open Data Catalogue Query: Triples by Subject, Predicate or Object (data.gov.be)

datagovbe/query-fragments

Queries the Belgian open data catalogue (data.gov.be, a DCAT catalogue published as linked data fragments) by triple pattern: give a subject, predicate and/or object IRI and get back the matching triples as full IRIs and literals, 100 per page, with the total match count and whether a next page exists. For example predicate rdf:type with object dcat:Dataset lists datasets; a dataset's own IRI as subject lists its title, description, publisher and distributions. Catalogue metadata only, not the data files; contact names, emails and telephone numbers of the catalogue's contact points are left out. Served by Eden Engine; not an official data.gov.be product.

activeper callv1

Price

$0.0026 per call

You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $0.50.

Data source

data.gov.be

Linked-data fragments of the Belgian open data portal data.gov.be (DCAT catalogue), served from ldf.belgif.be. Each described dataset belongs to its publisher and carries its own terms. Served by Eden Engine; not an official data.gov.be product.

Use it

Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.

Connect once and your AI can find and run this tool, and any other it needs.

agent
// 1. search: find the tool
omnial_search({ query: "what you need" })

// 2. inspect: price and input schema
omnial_inspect({ tool: "datagovbe/query-fragments" })

// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "datagovbe/query-fragments" })

// 4. run: price the exact call first, then run it
omnial_execute({ tool: "datagovbe/query-fragments", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "datagovbe/query-fragments", input: { /* ... */ } })

// 5. settle: the call is charged when it finishes, nothing to do

Not connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.

Pricing

Every charge this tool can incur.

ChargePrice
Per call
$0.0026
Updated
Oct 25, 2026

Input and output schemas

Input schema
input_schema.json
{
  "type": "object",
  "anyOf": [
    {
      "required": [
        "subject"
      ]
    },
    {
      "required": [
        "predicate"
      ]
    },
    {
      "required": [
        "object"
      ]
    }
  ],
  "properties": {
    "page": {
      "type": "integer",
      "maximum": 10000,
      "minimum": 1,
      "description": "Page number, counting from 1, of 100 triples each. Leave out for the first page. A page past the last returns no triples with the total unchanged."
    },
    "object": {
      "type": "string",
      "pattern": "^[A-Za-z][A-Za-z0-9+.-]*:[^\\s<>\"{}|\\\\^`]+$",
      "maxLength": 600,
      "minLength": 3,
      "description": "Object IRI to match, for example http://www.w3.org/ns/dcat#Dataset. Only IRIs can be matched; literal values cannot. Omit to match any object."
    },
    "subject": {
      "type": "string",
      "pattern": "^[A-Za-z][A-Za-z0-9+.-]*:[^\\s<>\"{}|\\\\^`]+$",
      "maxLength": 600,
      "minLength": 3,
      "description": "Subject IRI to match, for example a dataset IRI from an earlier answer. Omit to match any subject. Subjects written without a scheme (genid1) cannot be used."
    },
    "predicate": {
      "type": "string",
      "pattern": "^[A-Za-z][A-Za-z0-9+.-]*:[^\\s<>\"{}|\\\\^`]+$",
      "maxLength": 600,
      "minLength": 3,
      "description": "Predicate IRI to match, for example http://purl.org/dc/terms/title or http://www.w3.org/1999/02/22-rdf-syntax-ns#type. Omit to match any predicate."
    }
  },
  "additionalProperties": false
}
Output schema
output_schema.json
{
  "type": "object",
  "required": [
    "totalItems",
    "pageSize",
    "returned",
    "hasNextPage",
    "contactTriplesOmitted",
    "triples"
  ],
  "properties": {
    "triples": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "subject",
          "predicate",
          "object"
        ],
        "properties": {
          "object": {
            "type": "object",
            "required": [
              "type",
              "value",
              "language",
              "datatype",
              "truncated"
            ],
            "properties": {
              "type": {
                "enum": [
                  "iri",
                  "literal"
                ],
                "type": "string",
                "description": "Whether the object is an IRI or a literal value."
              },
              "value": {
                "type": "string",
                "description": "The IRI, or the literal text cut at 500 characters."
              },
              "datatype": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Datatype IRI of a typed literal. Null otherwise."
              },
              "language": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Language tag of a literal. Null for an IRI or an untagged literal."
              },
              "truncated": {
                "type": "boolean",
                "description": "True when a literal was cut at 500 characters."
              }
            },
            "additionalProperties": false
          },
          "subject": {
            "type": "string",
            "description": "Subject IRI. A blank-node subject that the server writes without a scheme (for example genid1) cannot be passed back as `subject`."
          },
          "predicate": {
            "type": "string",
            "description": "Predicate IRI; rdf:type is written out in full."
          }
        },
        "additionalProperties": false
      },
      "description": "The matching triples as full IRIs, in the server's order."
    },
    "pageSize": {
      "type": "integer",
      "description": "Number of triples the server puts on a full page."
    },
    "returned": {
      "type": "integer",
      "description": "Number of triples in this answer, at most 100."
    },
    "totalItems": {
      "type": "integer",
      "description": "Total number of triples in the catalogue that match the pattern, across all pages."
    },
    "hasNextPage": {
      "type": "boolean",
      "description": "True when the server offers a next page; ask for page + 1."
    },
    "contactTriplesOmitted": {
      "type": "integer",
      "description": "Number of triples on this page left out because they name a person or give an email address or telephone number."
    }
  },
  "description": "One page of the triples that match the pattern, with the paging facts.",
  "additionalProperties": false
}