The Pull stage ingests entities from your organization’s knowledge graph into Expert Center, making them available for enrichment and classification.
Pull is the foundation that discovers available buildings and their connectors, and connectors and their entities. Review a (growing) list of Mapped's available connectors and check out Connector Guides in this documentation.
Source Entities are entities that exist in your building’s data sources. When you pull data into Expert Center, you’re importing raw Source Entities from various connectors like BMS points (e.g., AHU-01_SAT, VAV1.ZNT), IoT sensor readings, or equipment names from integration platforms. These Source Entities form the foundation for all enrichment work in Expert Center.
You should Pull in Expert Center when starting a new building onboarding, refreshing data after ingesting new entities and relationships, adding new connectors to an existing building, or troubleshooting missing or outdated data
No buildings: Contact [email protected] if this issue persists.
Missing connectors: Run Pull again to refresh, then verify that the connector exists in your organization's console and that the connector source has data.
You'll know the Pull is complete when:
⚠️ Warning signs:
Once Pull is complete and you’ve selected a connector, begin the classification process with the Label stage.
The Label stage is where domain experts classify and enrich a sample of entities, creating the foundation for training AI models. Labeling captures domain expertise in a scalable format and builds a localized training dataset for inference.
During labeling, you’ll work with and create two types of entities:
Labeled Entities are Source Entities that you manually classify. When you label AHU-01_SAT as a "Supply Air Temperature Sensor," you’re creating a Labeled Entity with your domain expertise.
Derived Entities are new entities that don’t exist in the original data but are implied by Source Entity patterns. Each Derived Entity is always associated with one or more Source Entities that reference it. For example, when labeling VAV1.ZNT, you identify that:
Navigation: Connector Overview → Click Queued in Labeling Progress bar
Before labeling begins, familiarize yourself with the data in the queue and identify common naming patterns so you can prioritize high-value patterns based on your needs.
To distribute labeling tasks to your team, click Assign from any connector view.
When assigning work, you specify:
Each Labeled Entity requires completing 3 steps:
As an example, let's start with source entity: VAV1.ZNT (Point)
Classification: Classify source entity as Zone_Air_Temperature_Sensor
Add Derived Entities: Create new Derived Entity "VAV1" (and classify as Variable_Air_Volume_Box)
Add Derived Relations:
Key Concept: SELF always refers to the current source entity being labeled. Derived relations connect SELF to any entities you created in the Derived Entities step.
One strategy is to start with labeling the entities that you know you need, then progress to ambiguous ones:
It's best practice to match assignment to your team members' strengths:
You can monitor labeling through the Labeling Progress bar. Entities will change from Queued to Assigned to Completed.
If there's missing metadata, you have the option to label conservatively with limited information or consider deferring until more data is available.
You'll know labeling is complete when all assigned entities are marked Completed.
⚠️Warning signs:
Once assigned entities are completed, proceed to the the Process stage, which leverages AI models trained on your labeled data to automatically classify the remaining entities in your building.
Inferred Entities are Source Entities that have been automatically classified by the AI model. The model learns from Labeled Entities to predict:
For example, if you labeled AHU-01_SAT as a "Supply Air Temperature Sensor," the model can infer that AHU-02_SAT is likely also a "Supply Air Temperature Sensor" and belongs to "AHU-02."
Each Inferred Entity receives a confidence score indicating the model's certainty in its prediction.
Before you begin processing, ensure that the examples your team labeled cover major equipment types and that initial assignments have been completed.
Expected duration: 30-90 minutes depending on volume
While you monitor inference, you can view the status:
Once complete, results include Confidence Levels.
Don't expect perfection on the first run. Instead, run initial inferences, then review results and any labeling gaps. After labeling entities in the queue, you should re-run for improved accuracy.
To address poor accuracy, label more entities in the queue. The inference process already adds low confidence output to the queue. Then, review labeling consistency and check for naming pattern variations.
For large connectors with more than 10,000 entities, it's normal if processing times may exceed the expected 30-90 minutes. You can check system status for delays.
You'll know Processing is complete when:
⚠️Warning signs:
With inference complete, you can move onto the Review stage, which validates AI predictions through targeted human oversight, ensuring quality before proceeding. Review validates model predictions across confidence levels and identifies patterns requiring additional labeling, evaluating whether Labeled Entities match training data.
From Connector Overview:
To navigate to the Review tab, you can click confidence level bars in Inference Results for filtered views or select Review from the header menu for a complete overview.
Review Tabs:
Once on the Review Tab, you can drill down further into entities and relations through the tabs on the left:
These predictions indicate model uncertainty and guide future labeling priorities. To begin, filter by Low Confidence on the Review tab or select Low Confidence from the Inference Results bar in the Connector Overview.
You can approve any obvious correct predictions and take note of patterns for the next labeling round. Declined patterns are automatically added to the Labeling Queue.
Even high-confidence predictions can contain errors from training data issues. To begin, filter by High Confidence on the Review tab or select High Confidence from the Inference Results bar in the Connector Overview.
Here you can sample high confidence results and decline any incorrect classifications. Any declined entities are automatically returned to the Labeling Queue.
To review Derived Entities, switch to Derived Entities tab.
If you find an incorrect classification, you can decline an entire Derived Entity row. Note that declining affects all source entities using that derived entity.
Action | Source Entities | Derived Entities |
---|---|---|
Approve ✓ | Confirms classification | Not Applicable |
Decline ✗ | Returns to labeling queue | Rejects all dependent entities |
Skip → | Applies automatic rules* | Not applicable |
*Automatic rules: Low confidence inferences are declined, while high confidence inferences are approved.
Consider re-running inference if quality targets aren't met, or new labeling patterns are identified.
You'll know Review is complete when:
⚠️ Warning signs:
After review, the Unify stage creates a single source of truth by merging duplicate entities across different connectors (data sources). Unification eliminates duplicate representations of the same physical entity and creates unified entity relationships.
The same equipment (AHU1) can appear as AHU01.SupplyTemp from a BMS source, Air Handler 1 Supply Temperature from a spreadsheet, or SITE1/AHU/01/SAT from a connector integration. Unification allows you to merge all three entities as one entity:
Before starting unification, ensure that:
Navigate to Building Overview, then select Unification from the header menu on the top right.
Then, review the Unification interface.
Create Unified Entities:
Modify Existing:
Tips for Identifying Duplicates:
Over-unification may occur if you merge similar but distinct entities. For example, merging multiple zones into one zone.
You'll know the Unify step is complete when:
⚠️ Warning signs:
With unified knowledge graph complete, it's time to export enriched data back to operational systems. The Push step updates the organization’s knowledge graph with all the enrichment and unification work performed in Expert Center.
Classifications
Derived Entities
Derived Relationships
Unified Representations
All enriched data is pushed back to the organization’s central knowledge graph, making it available for analytics and reporting as well as integration with other systems.
Before pushing, verify that all connectors have been reviewed and unification has been finalized. You can always make changes and push again.
To push, navigate to the Building Overview and select Push All from the actions menu in the upper right.
Monitor push progress, which typically takes 1-5 minutes. Then, verify successful completion.
After a successful push, enriched data is immediately available in the organization's knowledge graph for:
You'll know the Push step is complete when:
⚠️ Warning signs:
After completing the push process, it’s important to Validate that your enriched knowledge graph is an accurate depiction of the building, and that it meets your expectations. This guide provides GraphQL queries to verify different aspects of your pushed data.
Use these queries to validate entity classifications, derived entities and relationships, and unified entity mappings.
Replace YOUR_BUILDING_ID with your actual building ID in all queries below.
Verify that building spaces and floors are properly structured:
Copy1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
{ buildings(filter: {id: {eq: "YOUR_BUILDING_ID"}}) { id name floors { id name spaces { id name description exactType } } spaces { id name description exactType mappingKey } } }
Check that Things (equipment) are properly classified and connected:
Copy1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
{ buildings(filter: {id: {eq: "YOUR_BUILDING_ID"}}) { things { id name description exactType mappingKey hasLocation { id name exactType } hasPart { ... on Thing { id name exactType } } isPartOf { ... on Thing { id name exactType } } feeds { ... on Thing { id name exactType } ... on Space { id name exactType } ... on Zone { id name exactType } } isFedBy { ... on Thing { id name exactType } } } } }
Check collection and/or system composition:
Copy1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
{ buildings(filter: {id: {eq: "YOUR_BUILDING_ID"}}) { collections { id name description exactType mappingKey hasPart { ... on Thing { id name exactType } } } } }
Validate zones and their HVAC system connections:
Copy1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
{ buildings(filter: {id: {eq: "YOUR_BUILDING_ID"}}) { zones { id name description exactType isServedBy { id name exactType } isFedBy { ... on Thing { id name exactType } } hasPart { ... on Space { id name exactType } ... on Zone { id name exactType } } } } }
Check that sensor points are properly classified and connected:
Copy1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
{ buildings(filter: {id: {eq: "YOUR_BUILDING_ID"}}) { points { id name description exactType unit { name description } isPointOf { ... on Zone { id name } ... on Thing { id name } } } } }
*** 6. Check Point Data and Latest Values ***
Verify that points have recent data:
Copy1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
{ buildings(filter: {id: {eq: "YOUR_BUILDING_ID"}}) { points { id name exactType series(latest: true) { timestamp value { float64Value } } } } }
After running these queries, verify the following:
Congratulations! You’ve completed the Expert Center enrichment process. Your building now has a validated, unified knowledge graph ready to power advanced analytics and operations.
Once you’ve validated your knowledge graph data, you can integrate with downstream systems via GraphQL API and monitor data quality and update as needed. For ongoing data management, return to Expert Center to make updates and push changes as required.