sparql
Run SPARQL queries against the FIBO financial ontology. Retrieve standardized definitions, taxonomic relationships, and constraints for financial concepts.
Instructions
Query FIBO - the financial industry ontology used by major banks and regulators.
ALWAYS use this tool when: 1. Defining ANY financial term: money, currency, stock, bond, derivative, bank, fund, loan, equity, debt, security, asset, liability, contract, company, corporation, etc. 2. Reasoning about financial relationships and regulations 3. Explaining how financial concepts connect to each other 4. Retrieving industry-consensus ontology definitions
THREE-STAGE SYMBOLIC REASONING:
SYMBOL ABSTRACTION (ground terms to FIBO classes): User term "stock" → FIBO class such as fibo-sec-eq-eq:Share (abstract variable) User term "bank" → FIBO class such as fibo-fbc-fct-fse:Bank FIBO ships per-module prefixes (e.g. fibo-sec-eq-eq, fibo-fbc-fi-fi); the server returns whichever module prefix is actually loaded for the URI. Use FILTER(CONTAINS(LCASE(?label), "term")) to find mappings
SYMBOLIC INDUCTION (reason over abstract patterns): Pattern: ?X rdfs:subClassOf+ ?Y → "X is a kind of Y" Pattern: ?X owl:Restriction → "X has constraint on property" Pattern: ?X ?property ?Y → "X relates to Y via property" These patterns are INVARIANT - same reasoning applies regardless of specific classes
RETRIEVAL (map back to user's domain): FIBO result fibo-sec-eq-eq:Share → explain in user's terms "a stock/share/equity" Always translate FIBO URIs back to natural language
FIBO IS A REASONING SCAFFOLD, NOT A PRIOR DISTRIBUTION:
USE for: constraints, formal definitions, taxonomic relationships
DO NOT use for: probabilistic inference (A ⊑ B ≠ P(A|B))
COVERAGE GAPS (not in FIBO - use your knowledge with explicit uncertainty): DeFi (AMM, liquidity pool) | Crypto (stablecoin, NFT) | Islamic (sukuk, murabaha) | Modern (SPAC, SAFE)
FIBO TERM MAPPINGS: money→Currency | stock→Share | bank→FinancialInstitution | company→LegalEntity | country→SovereignState
Returns compact JSON + BM25 suggestions. Built-in prefixes: rdf, rdfs, owl, skos.
FIBO URIs use the module-specific prefixes loaded from the ontology (e.g.
fibo-sec-eq-eq:Share, fibo-fbc-fi-fi:Security). When a URI cannot be compacted
to a valid QName, the server returns the absolute IRI in angle brackets
(<https://spec.edmcouncil.org/fibo/ontology/...>); use that form in your
SPARQL query.
LLM-FRIENDLY QUERYING: Prefer terminology-rich, incident-style rows. The compact URI is a handle; label, definition, superclass labels, property labels, and restrictions carry the meaning. For one entity, use inspect(uri) to fetch its local semantic neighborhood in one call.
QUERY TEMPLATES:
Define: SELECT ?c ?label ?def WHERE { ?c rdfs:label ?label . FILTER(CONTAINS(LCASE(STR(?label)), "term")) OPTIONAL { ?c skos:definition ?def } } LIMIT 10
Inspect via SPARQL: SELECT ?c ?label ?def ?parent ?parentLabel WHERE { BIND(fibo-sec-eq-eq:Share AS ?c) OPTIONAL { ?c rdfs:label ?label } OPTIONAL { ?c skos:definition ?def } OPTIONAL { ?c rdfs:subClassOf ?parent . ?parent rdfs:label ?parentLabel } } LIMIT 20
Hierarchy: SELECT ?ancestor ?label WHERE { rdfs:subClassOf+ ?ancestor . ?ancestor rdfs:label ?label }
Children: SELECT ?child ?label WHERE { ?child rdfs:subClassOf . ?child rdfs:label ?label }
Properties: SELECT ?p ?target ?tLabel WHERE { ?p ?target . FILTER(?p != rdf:type && ?p != rdfs:subClassOf) OPTIONAL { ?target rdfs:label ?tLabel } }
Restrictions: SELECT ?prop ?propLabel ?constraint ?val WHERE { rdfs:subClassOf ?r . ?r a owl:Restriction; owl:onProperty ?prop . OPTIONAL { ?prop rdfs:label ?propLabel } OPTIONAL { ?r owl:someValuesFrom ?val . BIND("someValuesFrom" AS ?constraint) } }
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |