Factgraph
Return the GraphRef (model_id, version, schema_version, created_at) for a job.
BearerAuthAuthorizationBearer <token>JWT access token. Obtain via POST /v1/auth/login.
job_id*Job Iduuidversion?|Model version (default: latest).
GraphRef for the job's building model.
response?unknownapplication/jsoncurl -X GET 'https://api.aisc.sa/v1/factgraph/jobs/497f6eca-6276-4993-bfeb-53cbbbba6f08/graph'nullReturn a page of entities for a job's building model.
BearerAuthAuthorizationBearer <token>JWT access token. Obtain via POST /v1/auth/login.
job_id*Job Iduuidelement_class?|Filter by element class (e.g. 'door').
min_confidence?Min Confidence0 <= value <= 10after_id?|Keyset cursor (last id seen).
page_size?Page Size1 <= value <= 50050Paginated entity list.
response?unknownapplication/jsoncurl -X GET 'https://api.aisc.sa/v1/factgraph/jobs/497f6eca-6276-4993-bfeb-53cbbbba6f08/graph/entities'nullReturn a page of resolved facts for a job's building model.
BearerAuthAuthorizationBearer <token>JWT access token. Obtain via POST /v1/auth/login.
job_id*Job Iduuidentity_ids?array<string>|Filter by entity UUIDs.
names?array<string>|Filter by fact names (e.g. 'clear_width_mm').
after_entity_id?|Keyset cursor (last entity_id seen).
page_size?Page Size1 <= value <= 50050Paginated fact list.
response?unknownapplication/jsoncurl -X GET 'https://api.aisc.sa/v1/factgraph/jobs/497f6eca-6276-4993-bfeb-53cbbbba6f08/graph/facts'nullCompute a quantity aggregation (count/length/area/volume) over the model.
Demo: POST with body {"element_class": "door", "measure": "count", "group_by": ["floor_number"]} returns door counts per floor with
contributing entity_ids (lineage-complete per RFC §5).
BearerAuthAuthorizationBearer <token>JWT access token. Obtain via POST /v1/auth/login.
job_id*Job Iduuidapplication/json- body
Input to quantities() — specifies the aggregation to compute.
V1 supports: count, length, area, volume. custom_expr is rejected in V1 (RFC §1).
element_class*Element ClassEntity class to aggregate (e.g. 'door').
fact_name?|Fact name to sum/measure (required for length/area/volume). Must be a physical symbol in the vocabulary.
group_by?array<string>Property keys to group by (e.g. ['floor_number']).
measure*MeasureAggregation measure: 'count' | 'length' | 'area' | 'volume'. 'custom_expr' is rejected in V1.
min_confidence?Min ConfidenceMinimum confidence threshold; entities below are excluded.
0 <= value <= 10QuantityProjection result.
response?unknownapplication/jsoncurl -X POST 'https://api.aisc.sa/v1/factgraph/jobs/497f6eca-6276-4993-bfeb-53cbbbba6f08/graph/quantities' \ -H 'Content-Type: application/json' \ -d '{ "element_class": "string", "measure": "string"}'nullReturn a page of relationships for a job's building model.
BearerAuthAuthorizationBearer <token>JWT access token. Obtain via POST /v1/auth/login.
job_id*Job Iduuidrel_type?|Filter by relationship type (e.g. 'contains').
after_id?|Keyset cursor (last id seen).
page_size?Page Size1 <= value <= 50050Paginated relationship list.
response?unknownapplication/jsoncurl -X GET 'https://api.aisc.sa/v1/factgraph/jobs/497f6eca-6276-4993-bfeb-53cbbbba6f08/graph/relationships'nullReturn verdict lineage rows linking compliance verdicts to element citations.
Each row carries rule_id, verdict, cited_entity_ids (drawing element UUIDs), and cited_fact_names (from the deterministic executor's audit_detail).
BearerAuthAuthorizationBearer <token>JWT access token. Obtain via POST /v1/auth/login.
job_id*Job Iduuidafter_id?|Keyset cursor (last verdict_id seen).
page_size?Page Size1 <= value <= 50050Paginated VerdictLineage list.
response?unknownapplication/jsoncurl -X GET 'https://api.aisc.sa/v1/factgraph/jobs/497f6eca-6276-4993-bfeb-53cbbbba6f08/lineage'null