DEV Community

loading...

Alternate Linked Data Syntax

andrewshell profile image Andrew Shell Originally published at blog.andrewshell.org on ・2 min read

Following my intuition keeps leading me to fun coincidences.

I’ve been following the work of Dorian Taylor, learning more about how he uses linked data. App::IBIS is interesting, but also how he’s using attributes on links on his website.

Here’s an example:

<a
    href="https://doriantaylor.com/policy/uris-resources-and-representations"
    rev="dct:references xhv:up"
    typeof="bibo:Report">
    <span property="dct:title">
        URIs, Resources and Representations
        </span>
    </a>

Enter fullscreen mode Exit fullscreen mode

I’ve implemented a markdown syntax so that I could assign arbitrary attributes on links. If I wanted to do something like this, that’s the way I’d have to go. If I only used rev="dct:references" it’s simpler but still ugly, and it doesn’t provide any context for someone using a web browser.

Today on a Federated Wiki Zoom, there was a demo showing how Eric Dobbs labels the relations between pages using Graphviz DOT language.

He uses a syntax that matches the words that start a line that link to other pages. Examples are “Includes,” “Consists of,” or “Enabled by.” I could see this used in conjunction with the work Dorian is doing. I could prefix a line “References,” and my blog engine would know to add rev="dct:references" to all the links on that line.

Pulling from his Content Inventory I could prefix links with “Mentions,” “Introduces,” or “Evokes.”

I’m excited about this idea. I think the next step is to decide my use case. What types of links do I want? Do I want to have matched inverses? So any page linked with “Evokes” would automatically have a backlink that is “Evoked by.”

The link prefix context is way more relevant to what I’m doing because I want it to be useful to a human, not necessarily a scraper.

Discussion

pic
Editor guide