mermaid is an RDF and Linked Data library, written and maintained by Kyebego as a personal project. It builds on the spirit of specifications like RDF Interfaces (W3C Working Group Note, never finished) and Interface Specification: RDF Representation (Draft Community Group Report, not an actual W3C specification), only updated for RDF 1.1 and the latest in web technologies.
Designed for use in client‐side and unhosted applications and publishing tools. Not designed for server‐side operations, for which a more rigourous RDF library should be used if maintaining compleat correctness is important.
- Written in CoffeeScript 2
- Literate source
- Compiles to ECMAScript 5.1
- Extensible
- Programmed with gay sensibilities
- GPLv3 License
For simplicity, mermaid lacks a true XSD engine,
which means that some things, like xsd:float
, might suffer from
minor rounding errors or approximations.
If you're a server and need a complete assurance that the data you are
dealing with is valid and interpreted according to its XSD datatype,
this library is probably not for you.
The full value of xsd:long
and xsd:unsignedLong
cannot fit in a
JavaScript number without rounding and mermaid makes no
attempt to get around this.
mermaid does not support the XSD datatypes which are listed
in RDF 1.1 Concepts and Abstract Syntax as “unsuitable for various
reasons”.
These are: xsd:QName
, xsd:ENTITY
, xsd:ID
, xsd:IDREF
,
xsd:NOTATION
, xsd:IDREFS
, xsd:ENTITIES
, and xsd:NMTOKENS
.
Finally, mermaid does not support xsd:duration
or the values
derived from it, as JavaScript has no native means of expressing
durations.
- Extensible Markup Language (XML) 1.1 (Second Edition)
- Interface Specification: RDF Representation
- Internationalized Resource Identifiers (IRIs)
- RDF 1.1 Concepts and Abstract Syntax
- RDF 1.1 N-Triples
- RDF 1.1 Turtle
- RDF Interfaces (WG Note)
- Tags for Identifying Languages
If you really want to understand how to use mermaid
, you
should read the source (but like, the English parts,
not the code).
The documents are organized by specification, so if you know what
you're looking for, things hopefully won't be too hard to find.
I'll try to put together a Tutorial that is a little more beginner‐friendly to approach once I'm satisfied with the state of the code and have spare time.
If mermaids kissing beneath the ocean waves makes you feel uncomfortable, maybe check out RDF Interfaces Extension instead.
It's open source so that you can modify the code before you run it on your own computer, not so that you can modify the code before I run it on mine ^.^
Feel free to fork if you think it needs something, tho (-_^)〜☆