Mirror of the Rel4tion website/wiki source, view at <http://rel4tion.org>

[[ 🗃 ^yEzqv rel4tion-wiki ]] :: [📥 Inbox] [📤 Outbox] [🐤 Followers] [🤝 Collaborators] [🛠 Commits]

Clone

HTTPS: git clone https://vervis.peers.community/repos/yEzqv

SSH: git clone USERNAME@vervis.peers.community:yEzqv

Branches

Tags

master :: projects / idan /

ttl-writing.mdwn

Guidelines for Writing Smaoin Files

Whether I’m even going to have a YAML-like language for Smaoin files is unknown, because my pseudo-Turtle seems to be quite convenient. But I can still have my own flavor of it and call it Idan, even if the difference is largely in the semantics. Idan is the language as a whole, i.e. it’s okay to use Turtle as its concrete syntax.

Assuming this modified Turtle is my format for now - how do I actually write files in it? I already started, but I think it’s time to write some clear guidelines and answer some questions. Here’s a list of issues:

When to (not) rely on inference

At the moment I’m relying on subclass, subproperty, domain and range to imply that a resource is a class or a property. In the better case, my database will really do the inference. It’s probably the most basic and simple kind of inference. But what if it doesn’t?

The situation with the files I’ve seen is as follows: XML files written in OWL or RDF/XML have the class of a thing as its XML element, so it’s always mentioned. Turtle-family files (TriG, etc.) seem to have the class specified as the first triple for each resource. Either way, it’s always specified, regardless of possible inference.

DECISION: Always start by specifying the smaoin:is_a property. Fix my exiting files and do it with all new files from now on.

How to interoperate with visuals

I’ve been doing a lot of work using Dia diagrams, without writing formal Smaoin files. It was very nice to have a visual representation, but now I need to write code and Dia is not enough. As with many other kinds of content, several paradigms are possible:

I’m going to take the third option. Ideally the graphics will allow me to move things, i.e. like in Dia, but it’s okay to start with a static graph for now. I can also import the static graph in Dia and then manipulate it as I wish. Options for visualizing the files:

I’ll start with rapper because it’s already there, part of Redland which I’m using anyway. I’ll also need Graphviz to visualize the file, but I need to see how to run Graphviz first and how it works. The important thing is that I chose a paradigm.

What must be specified about each entity

Except for smaoin:is_a, I need to decide what is said about each defined resource, e.g. label, namespace, name, description, comment, etc.

TODO: See what RDF and RDFS offer (w3schools RDF tutorial has a table of the RDF/S properties, maybe Wikipedia has one too) and decide what I want to have.

Here’s a list of what I have at the moment:

New things to add:

[See repo JSON]