New board topics in Microsoft Fabric Community
Microsoft Fabric Community
All Power BI Updates Blog posts
Power BI Updates Blog articles
Rdf
Get the latest information, insights, and news from Microsoft.
Feed
Source
Microsoft 365 Copilot Blog articles
Landingpage
Microsoft for Developers
Azure Databricks Release Notes
Databricks Release Notes updates
Command Line
By builders, for builders.
Microsoft On the Issues
News and perspectives on legal, public policy and citizenship topics
The Official Microsoft Blog
AI - Source
AI + Machine Learning | Microsoft Open Source Blog
Open dialogue about openness at Microsoft – open source, standards, interoperability
Microsoft Open Source Blog
Azure Kubernetes Service | Microsoft Open Source Blog
News | Microsoft Open Source Blog
Linux | Microsoft Open Source Blog
Events | Microsoft Open Source Blog
Tools | Microsoft Open Source Blog
Containers | Microsoft Open Source Blog
IoT | Microsoft Open Source Blog
Analytics | Microsoft Open Source Blog
Deep Learning | Microsoft Open Source Blog
IT Trends | Microsoft Open Source Blog
Application Development | Microsoft Open Source Blog
Microsoft news, features, events, and press materials
Stories
Cloud | Microsoft Open Source Blog
Infrastructure | Microsoft Open Source Blog
DevOps | Microsoft Open Source Blog
Standards | Microsoft Open Source Blog
.NET | Microsoft Open Source Blog
JavaScript | Microsoft Open Source Blog
Golang | Microsoft Open Source Blog
Bash | Microsoft Open Source Blog
Tutorials and demos | Microsoft Open Source Blog
Python | Microsoft Open Source Blog
Thought Leadership | Microsoft Open Source Blog
Typescript | Microsoft Open Source Blog
Abhishek Gupta, Author at Microsoft Open Source Blog
Java | Microsoft Open Source Blog
PyTorch | Microsoft Open Source Blog
Node.js | Microsoft Open Source Blog
Project updates | Microsoft Open Source Blog
article Use Microsoft Fabric IQ and Graph (preview) for Anti-Money Laundering solutions in IQ Community Blog
<p class="">In this article we address how we can leverage <span>Microsoft Fabric IQ and Graph queries (preview) to combat financial fraud in Anti-money laundering (AML) use cases.</span></p> <p class=""> </p> <p class="">Banks and financial institutions need to detect <strong>suspicious money flows</strong> such as:</p> <ul> <li>Circular transactions (layering)</li> <li>Rapid movement of funds through multiple accounts</li> <li>Hidden relationships between accounts, customers, and merchants</li> </ul> <p class="">Anti-Money Laundering (AML) involves methods and technologies to detect and prevent illegal fund transfers. Modern AML systems use advanced tools to spot complex patterns in financial data, helping organizations fight fraud more efficiently.</p> <p class=""> </p> <p class=""><strong>Here are some key use-cases of AML </strong></p> <p class=""><strong>Detection of Structuring:</strong> This refers to spotting large amounts divided into smaller transactions to evade detection. AML tools track these split transactions across accounts and beneficiaries.</p> <p class=""><strong>Shell Companies and Trusts:</strong> AML systems detect suspicious activity using shell companies to hide illicit fund origins.</p> <p class=""><strong>Round-Tripping and Bank Capture:</strong> These methods move funds across jurisdictions or use financial institutions for laundering. AML tools can trace these complex flows.</p> <p class=""><strong>Real-Time Fraud Detection:</strong> Leveraging Fabric IQ Ontology (and Graph queries) can enable real-time analysis of financial transactions, helping organizations detect and respond to suspicious activities instantly.</p> <p class="">The newly released <strong>Microsoft Fabric IQ</strong> (in preview) adds a governed semantic layer (ontology) mapping <strong>business entities & relationships</strong> across Microsoft OneLake; it integrates with <strong>Graph in Fabric</strong> to build <strong>labeled property graphs</strong> and run algorithms and <strong>GQL</strong> pattern queries. All of these can now be easiy accomplished in Microsoft Fabric.</p> <p class=""> </p> <p class=""><strong>Here is the High‑Level Flow (sequence) on how to set this up in Microsoft Fabric</strong></p> <p class="">Source (CSV / JSON) --> Lakehouse (Delta tables) --> Create Fabric Ontology (Semantic Graph layer) --> Create Fabric Data Agent (with Fabric Ontology as the Data Source/ Knowledge).</p> <p class="">Once the Fabric Ontology is setup and bound to your Lakehouse data, you are now ready to perform AML Pattern Detection via Natural Language queries (via Fabric Data Agent) and GQL queries via the Fabric UI or GraphQL API. You can also represent the data and results in Power BI.</p> <p class=""> </p> <p class=""><strong>Here are the high-level steps to try these features out in Microsoft Fabric. A technical version of this will be soon available on the Microsoft Fabric Community Blog site.</strong></p> <p class=""> </p> <p class="">1. Download the IBM AMLSim dataset to your local drive. <a href="https://www.kaggle.com/datasets/anshankul/ibm-amlsim-example-dataset/data?select=transactions.csv" target="_self">IBM AMLSim Example Dataset</a>. We only need 2 out of the 3 CSV files here (transactions and accounts).</p> <p class="">a. <strong>Accounts dataset</strong>: Contains the information about all the bank accounts whose transactions are monitored.</p> <p class="">b. <strong>Transactions dataset</strong>: Contains the list of all the transactions with information about sender and receiver accounts.</p> <p class=""> </p> <p class="">2. Create a new lakehouse (<strong>FabricIQ_DemoLH</strong>) in your Fabric workspace (<strong>FabricIQDemoWS)</strong> and make sure the checkbox for <strong>Lakehouse schemas (Public Preview)</strong> is not enabled. Then, upload the 2 sample CSV files to your lakehouse, and load each one to a new delta table. For detailed instructions on loading files to lakehouse tables, see the first three sections of <a href="https://learn.microsoft.com/en-us/fabric/data-engineering/get-started-csv-upload" target="_self">CSV file upload to Delta table for Power BI reporting</a>.</p> <p class=""> </p> <p class="">3. When your data is stored in OneLake, you can build an ontology from the OneLake data tables. That manual process involves these steps:</p> <ul> <li>Create an <strong>ontology item (call it AML)</strong></li> <li>Create 2 <strong>entity types (aml_accounts, aml_transactions)</strong></li> <li>Create <strong>data bindings</strong> and choose the <strong>entity type keys</strong> for the above entity types as per screenshots below: <span class="lia-inline-image-display-wrapper lia-image-align-inline" style="width: 761px;"><img alt="image.png" src="https://community.fabric.microsoft.com/t5/image/serverpage/image-id/1319588i6E81B6C432D3D080/image-size/large?v=v2&px=999" title="image.png" /></span><span class="lia-inline-image-display-wrapper lia-image-align-inline" style="width: 770px;"><img alt="image.png" src="https://community.fabric.microsoft.com/t5/image/serverpage/image-id/1319589i64EFA38677B10A94/image-size/large?v=v2&px=999" title="image.png" /></span></li> <li>Create a “transfers” <strong>relationship type</strong> between entity types (aml_accounts), and bind them to source data for “transactions” as per the screenshot below</li> </ul> <p class=""><span class="lia-inline-image-display-wrapper lia-image-align-inline" style="width: 938px;"><img alt="image.png" src="https://community.fabric.microsoft.com/t5/image/serverpage/image-id/1319590iC627AF74A7928F8C/image-size/large?v=v2&px=999" title="image.png" /></span></p> <div class=""> <div class=""> <div class=""> <p> </p> </div> </div> </div> <p class="">4. You are now ready to run graph queries over the graph model which was created above. Here are some sample queries using GQL (a variation of Cypher). Submit these queries on the graph model using the Query Builder or Code Editor as shown in the screenshot</p> <p class=""><span class="lia-inline-image-display-wrapper lia-image-align-inline" style="width: 868px;"><img alt="image.png" src="https://community.fabric.microsoft.com/t5/image/serverpage/image-id/1319591iAAFCCB439AE34123/image-size/large?v=v2&px=999" title="image.png" /></span></p> <p class="">a. Detect high-value transfers</p> <p class="">MATCH (a:aml_accounts)-[t:transfers]->(b:aml_accounts)</p> <p class="">WHERE t.amount > 1000000</p> <p class="">RETURN a.ACCOUNT_ID AS SenderAccount,</p> <p class="">b.ACCOUNT_ID AS ReceiverAccount,</p> <p class="">t.amount AS TransferAmount,</p> <p class="">t.tx_type,</p> <p class=""><a href="http://t.is/" target="_self">t.is</a>_fraud</p> <p class="">LIMIT 100</p> <p class=""> </p> <p class="">b. Detect Rapid Multiple Transfers (Structuring) – this detects transfers which are designed to be just under the reporting limit of 10000 (as an example)</p> <p class="">MATCH (a:aml_accounts)-[t:transfers]->(b:aml_accounts)</p> <p class="">where t.amount > 9000 and t.amount < 10000</p> <p class="">RETURN a.ACCOUNT_ID AS SenderAccount, COUNT(t) AS TransferCount, SUM(t.amount) AS TotalAmount</p> <p class="">GROUP BY SenderAccount</p> <p class="">ORDER BY TransferCount DESC</p> <p class="">LIMIT 50</p> <p class=""> </p> <p class="">c. Detect Circular transactions (Money laundering loops)</p> <p class="">MATCH (a:aml_accounts)-[t1:transfers]->(b:aml_accounts)-[t2:transfers]->(a)</p> <p class="">RETURN a.ACCOUNT_ID AS AccountA,</p> <p class="">b.ACCOUNT_ID AS AccountB,</p> <p class="">t1.amount AS FirstTransfer,</p> <p class="">t2.amount AS ReturnTransfer</p> <p class="">LIMIT 100</p> <p class=""> </p> <p class="">d. Detect cross-border transfers</p> <p class="">MATCH (a:aml_accounts)-[t:transfers]->(b:aml_accounts)</p> <p class="">WHERE <a href="http://a.country/" target="_self">a.COUNTRY</a> = 'USA' AND <a href="http://b.country/" target="_self">b.COUNTRY</a> <> 'USA'</p> <p class="">RETURN a.ACCOUNT_ID AS SenderAccount,</p> <p class="">b.ACCOUNT_ID AS ReceiverAccount,</p> <p class="">t.amount AS TransferAmount</p> <p class="">LIMIT 100</p> <p class=""> </p> <p class="">e. Detect transfers where a fraudulent account is involved</p> <p class="">MATCH (a:aml_accounts)-[t:transfers]->(b:aml_accounts)</p> <p class="">WHERE <a href="http://a.is/" target="_self">a.IS</a>_FRAUD = true OR <a href="http://b.is/" target="_self">b.IS</a>_FRAUD = true</p> <p class="">RETURN a.ACCOUNT_ID AS SenderAccount,</p> <p class="">b.ACCOUNT_ID AS ReceiverAccount,</p> <p class="">t.amount AS TransferAmount</p> <p class="">LIMIT 100</p> <p class=""> </p> <p class="">f. Combine Multiple AML patterns</p> <p class="">MATCH (a:aml_accounts)-[t:transfers]->(b:aml_accounts)</p> <p class="">WHERE (t.amount > 10000 OR <a href="http://a.is/" target="_self">a.IS</a>_FRAUD = true OR <a href="http://b.is/" target="_self">b.IS</a>_FRAUD = true)</p> <p class="">RETURN a.ACCOUNT_ID AS SenderAccount, b.ACCOUNT_ID AS ReceiverAccount, sum(t.amount) AS TransferAmount</p> <p class="">GROUP BY SenderAccount, ReceiverAccount</p> <p class="">ORDER BY TransferAmount DESC</p> <p class="">LIMIT 200</p> <p class=""> </p> <p class="">Sample results are shown below:</p> <p class=""><span class="lia-inline-image-display-wrapper lia-image-align-inline" style="width: 923px;"><img alt="image.png" src="https://community.fabric.microsoft.com/t5/image/serverpage/image-id/1319592i033E594B252BB981/image-size/large?v=v2&px=999" title="image.png" /></span></p> <p class=""> </p> <p class="">5. <strong>Create Data Agent</strong>. Ontology (preview) integrates with <a href="https://learn.microsoft.com/en-us/fabric/data-science/concept-data-agent" target="_self">Fabric data agent (preview)</a>, allowing you to ask questions in natural language and get answers grounded in the ontology's definitions and bindings.</p> <p class="">Go to your Fabric workspace and create a new <strong>data agent (preview)</strong>. Add <em>the above AML ontology</em> as a data source for the data agent. For detailed instructions, see <a href="https://learn.microsoft.com/en-us/fabric/data-science/how-to-create-data-agent#select-your-data" target="_self">Create a Fabric data agent (preview)</a>.</p> <p class="">Select <strong>Agent instructions</strong> from the menu ribbon and at the bottom of the input box, add <strong>Support group by in GQL</strong>. This instruction enables better aggregation across ontology data.</p> <p class="">Now you can explore your ontology (AML data) with natural language questions. Below is a sample of natural language questions and the results.</p> <p class=""> </p> <p class=""><strong>Q: show me the top 5 transfers</strong></p> <p class="">A: Here are the top 5 high-value transfers over $1,000,000:</p> <p class=""><em>Transaction ID: 1240091 | Amount: $21,474,836.47 | Sender Account: 6221 | Receiver Account: 1592</em></p> <p class=""><em>Transaction ID: 1241537 | Amount: $21,474,836.47 | Sender Account: 6388 | Receiver Account: 9976</em></p> <p class=""><em>Transaction ID: 1241578 | Amount: $21,474,836.47 | Sender Account: 314 | Receiver Account: 8966</em></p> <p class=""><em>Transaction ID: 1241669 | Amount: $21,474,836.47 | Sender Account: 2223 | Receiver Account: 1846</em></p> <p class=""><em>Transaction ID: 1241929 | Amount: $21,474,836.47 | Sender Account: 3287 | Receiver Account: 8104</em></p> <p class=""><em>These are the largest transfers exceeding $1 million in the dataset.</em></p> <p class=""> </p> <p class=""><strong>Q: show top 5 Transfers Involving Fraudulent Accounts</strong></p> <p class="">A: Here are the top 5 transfers involving fraudulent accounts, ranked by transaction amount:</p> <p class=""> </p> <ol> <li><em>Sender Account: 2364 | Receiver Account: 2079 | Amount: $21,474,836.47</em></li> <li><em>Sender Account: 3234 | Receiver Account: 8056 | Amount: $21,474,836.47</em></li> <li><em>Sender Account: 2223 | Receiver Account: 1846 | Amount: $21,474,836.47</em></li> <li><em>Sender Account: 2345 | Receiver Account: 7879 | Amount: $21,474,836.47</em></li> <li><em>Sender Account: 9288 | Receiver Account: 8344 | Amount: $21,474,836.47</em></li> </ol> <p> </p> <p class=""><em>All these transactions involve accounts that have been flagged as fraudulent.</em></p> <p class=""> </p> <p class=""><strong>Q:</strong> <strong>show top 5 Cross-Border Transfers</strong></p> <p class=""><em>A: No cross-border transfers were found in the available data. This means there are no transactions where the sender and receiver accounts are in different countries, or such information is not available in the dataset. If you need to adjust your search or check a different criteria, let me know!</em></p> <p class=""> </p> <p class="">This concludes the demonstration and example of how customers and partners can leverage the newly released Fabric IQ (in preview) to quickly analyze and visualize financial data with complex relationships using natural language. It also demonstrated how you can use graph queries (from pre-joined data in memory) without going through the complexity of performing multiple joins over relational data using SQL.</p>
We found 55 feeds from Microsoft. Any feed we should monitor?
55 available feeds
community.fabric.microsoft.com/oxcrx34285/rss/Community?interaction.style=forum
community.fabric.microsoft.com/oxcrx34285/rss/boardmessages?board.id=fbc_pbiupdatesblog
community.fabric.microsoft.com/oxcrx34285/rss/board?board.id=fbc_pbiupdatesblog
devblogs.microsoft.com/feed/rdf
news.microsoft.com/source/feed/atom/
news.microsoft.com/source/feed/
news.microsoft.com/source/feed/rdf/
techcommunity.microsoft.com/t5/s/gxcuf89792/rss/board?board.id=Microsoft365CopilotBlog
devblogs.microsoft.com/landingpage/
devblogs.microsoft.com/feed
learn.microsoft.com/en-us/azure/databricks/feed.xml
devblogs.microsoft.com/feed/atom
commandline.microsoft.com/feed/
commandline.microsoft.com/feed/rdf/
blogs.microsoft.com/on-the-issues/feed/
blogs.microsoft.com/feed/rdf/
blogs.microsoft.com/feed/
blogs.microsoft.com/feed/atom/
news.microsoft.com/source/topics/ai/feed/
commandline.microsoft.com/feed/atom/
opensource.microsoft.com/blog/topic/ai-machine-learning/feed/
opensource.microsoft.com/blog/feed/
opensource.microsoft.com/blog/tag/azure-kubernetes-service/feed/
opensource.microsoft.com/blog/content-type/news/feed/
opensource.microsoft.com/blog/tag/linux/feed/
opensource.microsoft.com/blog/content-type/events/feed/
opensource.microsoft.com/blog/topic/tools/feed/
opensource.microsoft.com/blog/topic/containers/feed/
opensource.microsoft.com/blog/topic/iot/feed/
opensource.microsoft.com/blog/topic/analytics/feed/
opensource.microsoft.com/blog/topic/deep-learning/feed/
opensource.microsoft.com/blog/topic/it-trends/feed/
opensource.microsoft.com/blog/topic/application-development/feed/
news.microsoft.com/feed/atom/
news.microsoft.com/feed/
news.microsoft.com/feed/rdf/
opensource.microsoft.com/blog/topic/cloud/feed/
opensource.microsoft.com/blog/topic/infrastructure/feed/
opensource.microsoft.com/blog/topic/devops/feed/
opensource.microsoft.com/blog/topic/standards/feed/
opensource.microsoft.com/blog/programming-language/net/feed/
opensource.microsoft.com/blog/programming-language/javascript/feed/
opensource.microsoft.com/blog/programming-language/golang/feed/
opensource.microsoft.com/blog/programming-language/bash/feed/
opensource.microsoft.com/blog/content-type/tutorials-and-demos/feed/
opensource.microsoft.com/blog/programming-language/python/feed/
opensource.microsoft.com/blog/content-type/thought-leadership/feed/
opensource.microsoft.com/blog/programming-language/typescript/feed/
opensource.microsoft.com/blog/author/abhishek-gupta/feed/
opensource.microsoft.com/blog/programming-language/java/feed/
opensource.microsoft.com/blog/programming-language/pytorch/feed/
opensource.microsoft.com/blog/programming-language/node-js/feed/
opensource.microsoft.com/blog/content-type/project-updates/feed/
community.fabric.microsoft.com/oxcrx34285/rss/message?board.id=fiq_comm_blog&message.id=2
Use this site or own it? Request priority indexing.