Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ Outbound `SERVICE` and `LOAD` — from the triplestore and from the platform ali

- Documents carry ordered **content blocks**, attached by RDF container membership properties — `rdf:_1`, `rdf:_2`, … on the document resource. Reordering a block rewrites those predicates.
- Only `ldh:Object` (an embedded RDF resource view, `rdf:value` naming the resource) and `ldh:XHTML` (rich text, `rdf:value` an `rdf:XMLLiteral`) are permitted as block values; anything else must be wrapped in an `ldh:Object`.
- **Views** (`ldh:View`) list resources. A view's `spin:query` is a stored `SELECT` (`sp:Select`), which the client wraps into a `DESCRIBE` of the query's **first variable** and renders in the view's `ac:mode`: a list, table, grid, map, or a graph. That variable must therefore bind resources (`SELECT ?item WHERE { … }`): one that binds values — a title, a number, a computed `(YEAR(NOW()) AS ?year)` — describes nothing, and the view shows an error instead of results. To show values, use a chart.
- **Views** (`ldh:View`) list resources. A view's `spin:query` is a stored `SELECT` (`sp:Select`), which the client wraps into a `DESCRIBE` of the query's **first variable** and renders in the view's `ac:mode`: a list, table, grid, map, or a graph. That variable must therefore bind resources (`SELECT ?item WHERE { … }`): one that binds values — a title, a number, a computed `(YEAR(NOW()) AS ?year)` — describes nothing, and the view shows an error instead of results. To show values, use a chart. Pick the mode by what the resources carry: `ac:GridMode` leads each card with the resource's image (`foaf:img`, `foaf:depiction`, `foaf:logo`, `schema:image`, `schema:logo`, `schema:thumbnailUrl`), `ac:MapMode` pins the ones with `geo:lat`/`geo:long`, and `ac:GraphMode` draws how they link. A table of resources that have photos or coordinates reads as a database, not as the things.
- **Charts** (`ldh:ResultSetChart`) plot a stored `SELECT`'s values: `ldh:categoryVarName` names the category variable and each `ldh:seriesVarName` a series, in `ldh:chartType`'s form.
- Forms and validation are ontology-driven (SPIN constructors + SHACL shapes), so instance data is shaped by the app's ontology rather than hardcoded schemas.
- **Imports** are documents too: an `ldh:CSVImport` or `ldh:RDFImport` resource with `ldh:file` (the source), `spin:query` (the transformation) and, for CSV, `ldh:delimiter`. Creating one submits the ingest; the source URIs are validated before being fetched.
Expand Down
Loading