Repository navigation
Develop - #67
Merged
Merged
Develop#67
Conversation
…s, which redirects to docs.linkeddatahub.com Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ice and a cutter. screencast/overview/SCRIPT.md is draft 2 of the narration - 36 lines grouped into flows A to G plus a deferred H, reviewed line by line, each kept to about 30 words and free of em-dash insets and closing slogans - with the respelling table (LinkedDataHub, SPARQL, SKOS, WebID, ORCID, ldh, CSV; RDF and URI are read as written) and the takes table. overview/voice.mjs synthesises every narration row with ElevenLabs on its own, through the with-timestamps endpoint, cached under a hash of voice, model and spoken text, so a changed line is billed once and the alignment feeds the subtitles. scenes/overview-{0-graph,a-browse,a-graph,b-author,c-data,d-versions,e-model,e-phone,f-anon,f-cli,g-packages}.mjs record the flows as beats, failing the take on any step that did not happen; tapes/overview-{f-push,f-public,f-curl,g-packages}.tape are the terminal takes, recorded from inside the F and G scenes so the browser shows the dataspace as the commands left it. render/overview.mjs cuts overview/cut.json: each shot placed at its beat, held to its line plus a pause, framed by a zoompan that eases through the beats' focus boxes; the 16:10 take is cropped to 16:9 first, and the crop slides with the camera so a key on the Create dock or the breadcrumb - 90 px outside a centred crop - stays in frame; cards and the closing slide are drawn in Geist; the music is ducked under the voice, the chapter tone laid at each card, the mix normalised to -14 LUFS; an .srt is written by sentence from the alignments; --reuse re-cuts only the named shots. lib/terminal.mjs gained trustedCurlEnv, which makes a tape's curl request before filming it and trusts a stack curl cannot verify through a .curlrc of its own, so the command on camera needs no -k and an empty answer fails the take; lib/harness.mjs pins the browser to en-US and lets a take record at a size other than its viewport (the phone take); addProse lets a scene mark the opened editor; editResource centres the pencil, which under the sticky action bar opened Actions instead. FINDINGS 16 records Restore failing with 412 when pressed from a historical version, with the two probes that show it; the probes for sign-in, restore, versions and the scheme-at-width question are kept, and the stray undefined/ screenshots one of them wrote go.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…mand takes it: the ones that address a document never needed it, and the ones that act on the dataspace itself - packages, admin clear ontology, admin create ontology/group/authorization, admin import ontology and admin make-public - take its base URI as their positional, defaulting to LDH_BASE. The CLI reference loses the -b row, says which commands take the base URI positionally, maps LDH_BASE to that parameter and shows the usage message without it; the tutorial and the change-model guide stop passing -b, and the packages pages say list needs the dataspace URI. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ase option, which LinkedDataHub#404 removed. admin clear ontology in lib/ldh-app.sh and admin create authorization in the UNESCO thesaurus install take the admin base URI as their positional. The packages scene passes the dataspace URI the same way; the document and container resets in lib/fixture.mjs drop it, since create item, create container and delete never needed it. The make-public and packages tapes type the bare commands, which default to the LDH_BASE their scenes export, as the narration shows them; the harness comment no longer cites the CLI's option as the reason for its own --base flag. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The versioning reference said a document with no versions answers its TimeMap 404; it now has an empty TimeMap, and the link-format example shows the from/until range, the TimeGate and the first/last relation types the writer emits, with relation types quoted. The configuration reference passes the connection pool settings as system properties, adds MAX_REQUEST_RETRIES, and says ORCID_ISSUER selects ORCID's sandbox. The packages reference says a runtime change persists in settings/dataspaces.ru and is applied over the configuration on restart, and the setup tree lists settings/. The version history guide covers a document with no versions yet, and the views reference says the first projected variable may be aliased and must bind resources. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…JSON-LD The object block section says that an object's value can also be a page on the web, which LinkedDataHub reads as data: a page embedding JSON-LD in a script element contributes the resources it describes, and a YouTube video has its metadata translated to RDF on the fly as a schema:VideoObject, the block showing the player. Support for other services is planned. A video or a page is embedded as an object block with its URL, not as an iframe in an XHTML block. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…dalone view is a resource like a query or a chart, stored in a document and placed on a page by an object block; a property-attached view is declared in the ontology with ldh:view or ldh:inverseView, stored in no document and rendered on every resource of the property's domain or range. Both offer the same pagination, faceted search and parallax navigation, which the paragraph links to. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…s shot: the assistant and an agent over MCP overview/SCRIPT.md: every line rewritten to say what the shot shows, with the names on screen (Territories, Seattle, Rockville, Beverages, Denmark). The intro is two lines over one orbit: LinkedDataHub serves federated Linked Data dataspaces from a SPARQL-compliant triplestore and works with any RDF Knowledge Graph, as a thin layer on top of it. A6 says the address bar opens external URLs one tab per origin, as the take shows; F3 and F3b follow the CLI's new commands; flow H is no longer deferred: H1-H4 the assistant (ask, answer, Execute, the chat kept after a reload), H5-H7 Web-Algebra's MCP server driving Claude Code. voice.mjs reads 0.2 as a line too. scenes/overview-0-graph.mjs maximises the order's graph and orbits the camera through the ForceGraph3D instance, its controls and the pointer hidden. overview-a-browse frames A6's address bar. overview-f-cli removes last take's Editors group and authorization first, and films tapes/overview-f-public.tape creating the group, the authorization and make-public, and tapes/overview-f-get.tape (was overview-f-curl) asking for Turtle with ldh get. New: scenes/overview-h-assistant.mjs, scenes/overview-h-agent.mjs and tapes/overview-h-agent.tape. overview/cut.json cuts them all. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ance's form. Edit constructors, at the bottom of the form, opens a dialog listing the properties the class's constructor gives a new instance, each switched between Resource and Literal with its class or datatype; a row can be changed, removed or added with Property, and Save makes the class's create forms follow. For a resource of several classes the button is a menu with an entry per class; it appears once the client has checked that the agent can write the constructor, which in practice means the owners group, and a class with no constructor yet is offered too. The constructor's command-line tab no longer says the admin command passes -b: the CLI dropped the option, and the target document URL alone carries the administration base. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… frame shows, and quotes its CLI arguments E3c is new: scenes/overview-e-model.mjs opens the new product's form again and presses Edit constructors, holding on the Product constructor dialog - its properties, each a literal of a datatype or a resource of a class - before cancelling it, so the model is as it was; SCRIPT.md gives it a line and cut.json a shot. E4 is split in two, so the phone-width frame is no longer silent: E4 says the interface follows the reader's colour scheme, E4p that the layout is responsive and that a dataspace can override any of it with its own XSLT stylesheet. The F tapes quote every expansion they type, as the docs' CLI examples do: the push target, the administration base, the group and user guide URIs, and the ldh get target. scenes/probe-assistant.mjs and scenes/probe-edit-constructors.mjs are the probes that showed what the assistant and the constructor dialog do before their beats were written. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… forking The Add data guide opens with "You can copy the contents of any RDF document into a named graph in your dataspace", Save copies the data, the UNESCO concept is copied into your own dataspace, the CLI equivalent is "the same copy", and the closing link finds resources worth copying. The About page lists copying RDF resources into the local dataspace. The overview film says it the same way. The Add data clip is labelled "Copying a remote RDF document into the dataspace", and the shot list's caption follows, since docs/fill.mjs finds a filled clip by its label. Forking the LinkedDataHub repository, in the setup guide and the README, keeps its name. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ment" Its title shows on screen, so it follows the docs: the scratch document is copy, "Copying a remote document", the clip's last beat is copied, and the entry's comments say copy where they said fork. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…g a remote document" The breadcrumb in the clip read "Forking a remote document". The clip is shot again from the renamed manifest entry, published by make docs-publish (every other published file comes out byte-identical) and filled into the page: /uploads/08ebfd9ed8fa60a805d5bdff240eb8d36807da7a. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ll finds it again The still was taken on 25 September, before "application" became "dataspace" in its caption, and the shoot index kept the old caption: docs/fill.mjs matches by the index's caption, so every fill since reported the slot missing. Shot again, the index carries the current caption, and the picture shows the interface as it is now, the dock's Assistant button included: /uploads/c9837af7cdd4294db6863a47aba65b99daf7b3f1. docs-fill now places all 44 slots. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…hat continues the take before it joins it seamlessly overview/SCRIPT.md: A1 says a document is also a named graph in the backend triplestore; B3 names the two kinds of block, XHTML blocks and object blocks that transclude Linked Data resources; a new B3a, over the document back in Properties mode, says that mode shows all of a document's resources in no particular order; D1 says every write to a document is a commit in a GitHub repository. B5 is split, the drag becoming B5d; C1 copies with Save as; E4p says how a dataspace customises its UI. overview/cut.json cuts B3a from the Properties-mode footage before B3, and moves the 0.1/0.2 and B5/B5d boundaries later in their takes so neither shot holds a frozen frame mid-motion. render/overview.mjs: a shot that starts on the beat the previous shot ended on, in the same take, starts on that shot's last frame instead of 0.3 s before the beat, which replayed five frames, and opens on the framing the previous shot closed on instead of the whole frame. The intro's orbit, B3a/B3 and B5/B5d now join without a jump. The phone take glides for the longer E4p line; the assistant and agent scenes remove their scratch documents once recorded, so the other takes' document tree shows only the demo's own. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…matches the code A "Runs on" column (Server, Browser, Both) replaces the scattered client-side and server-side notes, two of which were wrong. ldh:query-result and ldh:send-request are documented as they now work: one SPARQL function for any stylesheet, and an HTTP primitive that exists only on the server. ac:value-intersect, ac:value-except, ldh:parse-html and ldh:snapshot-params are removed, the last two because they do not exist. Parameter names and types of ac:build-uri, ldh:base-uri, ldh:link-targets and ldh:send-request are corrected to the declarations, and the ac:uri and ldh:link-targets descriptions to what each side does. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…30° of orbit scenes/x-header.mjs lays a document out in Graph mode at 3000×1000, maximises the graph with its own Fullscreen button, hides its controls and the pointer, and puts it on the page's dark ground; once the layout settles it takes a still every 30°, downscaled to 1500×500 into shots/x-header/. --uri opens an external document through the Linked Data browser; --labels keeps node labels that are words, dropping link labels and any label that is a URI, --label-scale enlarges them and draws them over the spheres; --align orbits round the graph's longest axis and keeps it across the band; --zoom and --shift frame it right of centre, clear of the profile picture X lays over the bottom-left. The header picked is SKOS (http://www.w3.org/2004/02/skos/core: 49 nodes, 155 links), shot on the LTLOD stack with --labels --label-scale 2 --shift 0.1 --zoom 0.34 --align. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The mapping queries gave the domain resources - categories, companies and their contacts, employees, products, orders, order lines, list prices, deliveries, shipments, regions and territories - a dct:title beside, or instead of, their schema:name. They now carry schema:name alone: employees are named "First Last", an order by its ID, a shipment "Shipped <date>", the price and delivery parts "List price", "Shipping" and "Freight". dct:title stays on the documents. The namespace ontology's constructors follow, offering schema:name where they offered dct:title. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
tracks/ is not in git, so a take overwritten by a few seconds of a run that failed is gone for good, as the overview's versions take was on 9 October. runScene now saves a failed run's video and marks as <take>.failed and leaves the take as it was. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
As the Northwind mapping queries do since 102b22c: the Turtle dropped in C3, the versioned territory in D and the drop probe's place carry schema:name and no dct:title. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… the book's rules, and its frozen frames cut Order: the versions flow follows the editing it describes, and the interface shots (colour scheme, phone) move after it, before the CLI. Lines: F1 says ldh push walks a folder of Turtle and binary files recursively and that the documentation is itself a dataspace, F2 follows; B3 lists the blocks as XHTML text and transcluded objects such as views, charts or assistant conversations, over a re-shot B take whose dock has the Assistant button; E4p says a custom stylesheet rather than XSLT; H2, E3c, F3b, H7 and Z1 drop their stock phrases and closing slogans, per the prose rules of First-Principles-of-the-Web. Frozen frames: F2 scrolled nothing, since the page scrolls inside its pane, so overview-f-cli glides to the last block over the line's length; overview-e-model holds on the view before Create, and E1 starts on the Beverages resource; B3, B5d and E1 take the spare footage around them, and B3 plays at 0.75x under its longer line. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… agent asks for Northwind offers, and its frozen frames are cut Takes: C (take 4 and 5), D (take 2) and E (take 3) re-shot after the Northwind model's constraints were aligned with its imports: the fixtures write whole territories and products. H1-H4 (take 2) keep the question in view while its card grows, the chat's own scrollIntoView held and each question eased to the top; the model's waits are played fast (H1w, H3w), H1a starts on the drawn chat block. F4a and F4 are a new anonymous take (overview-f-login): the WebID sign-up form, then Login with Google and ORCID. G is re-shot in dark with the scene centring Denmark in the concept tree, which the rig's CSS zoom scrolls out of sight. Agent (H5-H7): the prompt asks for new offers, a 20% discount on three Beverages products and a chart of their prices, instead of books. The scene follows the chart to whichever document holds it, keeps the documents when H7 fails (--browser-only films it again), and the tape pins uv's resolution to 2026-10-05, since later pydantic releases break the mcp the server imports. Narration: F4a, F4, E3, E3b, H2, H6 and H7 rewritten; a command in backticks is said as one phrase between short breaks, shown in the subtitles without them. Cut: shots whose footage ran short of their line play slower instead of freezing on their last frame; G3 and H1a start past the frames where the page is still settling; the closing card fades in before its line and stays four seconds after it (a shot's own lineOffset). The audio is resampled to 48 kHz after loudnorm. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… what they require The ldh:MissingPropertyValue constraints now require what the CSV-to-RDF queries always write, so a hand-made resource is held to the same shape as an imported one: a Product needs a name, identifier, description, category and provider. The constructors gain the fields those constraints ask for (the list price's priceType, the delivery charge's delivery method, the order's status). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
With the Northwind Traders demo installed, the agent creates a container of new offers, a 20% discount on three Beverages products, each an offer of its product, and a chart of their prices: data that joins the dataspace's own, as the overview film shows. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…he second trip into the form, and Save under the create bar B (take 7): B1 brings Save to rest above the sticky create bar instead of under it, where the camera zoomed onto the bar. B5b picks up where B5d leaves off, scrolls only what is off screen, eases the video form clear of the bars, and is framed static; from B5b on the page's min-height: 100vh is halved, since the rig's CSS zoom doubles it and parks the create bar a screen below the content. B5d stops before B5b's moves and plays at 0.58x. E (take 7): E3c opens Edit constructors from the form E3b opened, cancels the constructor and then saves the form, so the record's form is opened once rather than reopened after its save. The min-height is halved just before that save, so the saved record shows instead of an empty screen; E3b plays at 1x. The override is applied only where it is needed: applied to the whole scene, it moved the scroll position of shots it was not meant to touch. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…taspaces.trig and types it end-user or admin in system.trig Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…--file and wait for their imports ldh_app_import_ns is one command instead of the reset PATCH, the POST with an @base and the cache clear, so the patch-ontology.ru files go; nothing derives the admin. URI or proxy any more, since ldh follows the end-user base's lds:admin link and keeps the Host through a proxy; CSV and RDF imports pass --wait. The tutorial, the import guides and the CLI reference describe the same. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…/context and lds:context() LinkedDataHub publishes the end-user/admin pairing as a Link relation and the public dataspace descriptions at /context; stylesheets read them through lds:context() and receive no service endpoints or credentials. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…and /context A Hypermedia section lists the relations LinkedDataHub sends (the SPARQL endpoint, the dataspace, its ontology and stylesheet, the lds:admin pairing, the agent and its access modes, the Memento relations) and how proxied responses forward the remote ones. /context joins the system endpoints, and the admin endpoints are given relative to the administration dataspace's own base rather than an admin/ path. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d as an object block Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ces, as system.trig does Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
namedgraph
marked this pull request as ready for review
October 16, 2026 22:56
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.