What's new

Each release of Arspec, newest first, and what it changed. The browser version at run.arspec.app is always the newest; the download page says which version each platform has, and the app shows its own under Preferences → About.

0.7.0

Named graphs, and graphs an action computes. A document that holds named graphs — TriG, N-Quads, or JSON-LD with @graph — now opens with each graph as a row of its own under the file. The file's views read every graph together; a graph's row opens that graph alone; and every graph is edited in place, each row written back into the graph it came from, all on the file's one undo history. A graph can also be temporary: the session's rather than the file's, read and edited like any other but never saved. And an action can build one. A new kind of step, Within graph, runs the steps under it inside a named graph, making the graph the first time it is needed — so a Select over the file with an Insert within a temporary graph computes derived statements on demand: a report, an index, an inferred relation, gone when the session ends, or kept with the file if the step says so.

The demo shows it: Find collaborators on the People view computes who works with whom into a temporary graph, asking once, and a Collaborators tab stands from then on.

Named graphs

  • Read and written in their own formats. TriG and N-Quads are recognised by their content, whatever the file is called, and written back as they came; JSON-LD's @graph is read where it stands — the default graph at the top, a named graph under an @id — with nested and inherited contexts. Within one document an anonymous node keeps its label across graphs, so _:b in two graphs is one node. A Turtle file that is given a graph asks on its next save whether to become TriG or keep its default graph alone.
  • A graph's row has a menu. Rename — by a word, a prefixed name, an IRI or _:label, with what will not do said as you type — Erase its statements, Delete it whole, Mark as temporary or persistent again, and Copy all triples and Paste triples between graphs and files, asking first and doubling nothing. New graph… on a file's row makes one. Each is one step that Undo takes back. Named graphs in the docs →
  • Edited across graphs. An add lands in the graph of the row it was pressed on, a deletion takes each statement from where it stands, and renaming a term follows it into every graph of the file.
  • .trig and .nq files open with Arspec from the file manager, on every platform.

Actions

  • Within graph, the sixth kind of step: the steps under it read the named graph first and write into it — an Insert lands there, a Select finds its rows there before the rest of the file, an Update of a statement from elsewhere restates it there and leaves the original alone. Where the graph is missing the action makes it, asking first unless told not to, temporary if the step is ticked so. Actions in the docs →
  • A Call can reach another perspective. Another perspective… at the foot of the Call's menu picks any action of any perspective the file can reach, which runs as the recipe it is, on the row it was pressed on. Every action is now written as a named node, so there is a name for a Call from elsewhere to hold.
  • Move up / down is an action of the list. In a list that keeps an order of its own, a row's place is a number in the file, and moving a row swapped numbers with its neighbour from the record's menu or with Alt+↑ / Alt+↓, and nowhere else. It now stands beside Add, Copy & Paste and Delete as a card in the list's Actions: offered or not, in the bar or on the menu alone, in its own place, wearing a face, drawn in the bar as two buttons the way Copy and Paste are. Where the list is not sorted in numeric order the card says where that is set. The actions, on a page of their own →

Views and styles

  • A record can expand as it is selected. Expand record when selected, under a list's Display, ties the two together: a record opens as the cursor lands on it and closes as the cursor leaves, so what its lenses show is always the selected record's.
  • A file's own styles, and its topic's, now dress its views, ranked as Style priority says, and a style edited in the Styles view takes effect in the next tab at once. Before, only your profile's styles and the app's own reached a view.
  • The Form look, which sets each record of a list on one line led by the list's name, is called Form (it was Compact), and takes effect only where it fits: on a list that has a label and holds one record at most. Files that say the old name are read as saying the new one.
  • A style can ask the list it stands in for its ceiling, its floor and whether it has a label (av:maxCount, av:minCount, av:hasLabel), to dress the single-record lists or the labelled ones without naming each. Styles in the docs →

The demo

  • The demo topic has grown from three plain views into a small world: lenses under every person and project that open into each other, fields offering the roles and projects the file already uses, three actions of its own — New engineer, Make lead and Find collaborators — a vocabulary of its own that the data imports, and a style of the topic's own.
  • And smaller fixes and improvements throughout.

0.6.0

Plain data, read as a graph. Arspec now opens JSON, XML, CSV and TSV, YAML and TOML files beside the RDF ones. Every object, element, row, mapping or table becomes an item, every field, child element, attribute, column or key a property of it — so a view written over a JSON file works on the XML one, and a spreadsheet's table is browsed, searched and edited like any ontology. Saved, the file keeps the shape it came in: the order of its fields, the columns and their separator, the root element's name, and the comments in a YAML, TOML or XML file stay where they were written.

FormatEach item isEach property isKept on the way back
JSON .jsonan objecta field; one value per array elementthe order of the fields; a null, an empty array, an array of one; a top-level array
XML .xmlan elementa child element; an attribute as @name; text beside elements as text()the order of the elements, the root's name, the namespaces, the comments and processing instructions
CSV, TSV .csv .tsva rowa column, named by the first rowthe separator, the line ending, the quoting; an empty cell stays empty
YAML .yaml .ymla mappinga key; one value per sequence itemthe order of the keys, the documents of a stream, the comments
TOML .tomla table — the root, a [section], an [[item]], an inline { … }a keyhow each key was written, its order, the comments

Numbers keep their spelling, 007 in a table stays text, and a file is still recognised by what is in it: a .json that holds JSON-LD opens as JSON-LD, an .xml with rdf:RDF at its root as RDF/XML. What a plain format has no way to write — a name for an item, a value that points at another item, a property from another vocabulary — the save asks about first, once: write JSON-LD or RDF/XML into the same file and keep everything, or write the plain format and leave those out. Until you answer, the edits stay pending and the file's row says why. A table, a YAML or a TOML file has no richer form to offer, so there the question is only whether to go without.

Opening files

  • Big or slow files show their progress. A file of a megabyte or more, or any load that has taken a second, puts up a small dialog naming the file and its place in the batch, with a bar for each stretch — downloading, reading, parsing — and a Cancel button. Cancelling leaves nothing half-loaded: the file is not opened, the topic does not name it, and the other files of the batch go on.
  • Open with Arspec. A double-click on a file, Open with, a file dropped on the app's icon, a share from another app on a phone: every platform now hands the file to Arspec, which registers for .ttl, .n3, .nt, .rdf, .owl, .owx, .jsonld and .arspec. On Windows and Linux a second file opens in the window already open rather than in a second copy of the app.
  • A link can carry the file. In the browser, run.arspec.app/?f=address opens with that file loaded, as if its address had been pasted into Load source; a .arspec named that way opens as the topic it is, with the files it covers. The demo is one such link. How a link names a file →
  • Turtle written with PREFIX and BASE, the SPARQL spelling the W3C's own examples use, is read; before, the directives were taken for statements and half the file was lost. N-Triples files (.nt) open.

Perspectives

  • A field can say which terms belong in it. Behind each shown part of a row there is now a Choices query: a condition on a statement, the way Order is one, and whatever it finds is what the field offers — the operators for an operator field, the things of whatever the row is about. Picking one points that statement at the term; typing a name still renames the term everywhere, as it always did. The list is an offer unless the field says only these.
  • A cell can read as a term's label. A View mode on each shown part shows a term by its rdfs:label or ars:label where the file, or a vocabulary it imports, states one, and the term itself where none does. A reading only: clicks, sorting and search still go by the term.
  • An action can call another. A fifth kind of step, Call, runs another action of the same list on the row the action was pressed on, and the steps under it run under each row the called action made. So an action of your own can call Add and then say what is particular about the new row, in one press.
  • A condition can ask whether the reader has opened the row — ↑ record is expanded — so a view can show more once a record is unfolded and less while it is shut. With it, an is a value test, the counterpart of is blank, to tell a row that says something from one that points at something.
  • The action bar holds more actions than there are digit keys; the eleventh is pressed by hand. A right-click opens a menu without moving the cursor, and a right-click beside an open menu opens the next one instead of only closing the first.

The AI assistant

  • Blank nodes keep their names. When the assistant reads a term's description, every anonymous node in it is now written under the label the file holds it by, never folded into [ … ], so a proposed change can quote a line back and delete a statement that involves one. A reader on LinkedIn predicted exactly this problem.

0.5.0

The first release anyone could use: the complete editor in the browser at run.arspec.app, and on Google Play. Turtle, N3, RDF/XML, OWL/XML and JSON-LD; perspectives, lenses and topics; the action bar at the foot of a view, each action with a digit of its own and a perspective free to add actions of its own, said in triples; the built-in AI assistant and the MCP connection for a chat of your own; and Report a bug.