My work with Credential Engine focuses on CTDL, the Credential Transparency Description Language, which is an RDF vocabulary. We often describe it as a dictionary of terms we use to describe credentials. As an ice-breaker for a recent meeting I asked
What does a language need apart from a vocabulary in order to allow communication?
We got many interesting answers, with many different takes on the question, all of them correct. Here is my answer to that question as applied to RDF. It comes with the disclaimer that my knowledge of linguistics doesn’t go much beyond the first paragraph of Wikipedia articles, and so an apology to linguists (including friends) who know better.
I took a loose interpretation on “need”, many of these are desirable rather than necessary. Working from the smallest part outwards:
Predictable Morphology, which is the way in which terms are formed (Wikipedia). In English you know that –ed at the end of a verb means it is in the past tense, or that plurals are often formed by adding –s to the end of the word. CTDL, like some RDF vocabularies is somewhat erratic rather than predictable on this score (but, hey, so is English). Perhaps the single most adhered-to morphological rule is that classes are named with UpperCamelCase and properties with lowerCamelCase. Another example of morphology in RDF is the use of hasSomething for property names (hasPart, hasParent, hasChild) indicating object to object relationship (and not, as in some other paradigms, a binary yes/no value). In CTDL we also have a convention that a property that takes its value from a controlled vocabulary has a name following the pattern somethingType, e.g. audienceType, though we use the Type suffix for other things as well where it seems natural.
Vocabulary, that’s the term definitions, the dictionary, which was our starting point, but let’s emphasize semantics, which in RDF goes beyond just textual definitions of the meaning of terms and includes encoding machine readable relationships between terms. So the term definitions will include information that can be used to make inferences beyond what is explicitly stated in the data. If you know that all Athenians and Greek, and Socrates is an Athenian, then you know that Socrates is Greek; in RDF you can encode this information into the definition of Athenian so that it can be inferred rather than stated explicitly for ever individual Athenian.
Then there are a couple of things that I think fall under grammar.
Parts of speech, different types of word fulfill different roles in a language: verbs, nouns, adjective, adverbs, some verbs are transitive, some are intransitive, and so on. In RDF we have terms that are properties and terms that are Classes. The Classes are types or groups of things; the properties express relationships between things or characteristics of them. An important class is that of Literals which comprises text, numbers, dates used to describe or provide values when providing data about some characteristic of something. OWL introduced more divisions of property; SKOS gave us Concepts.
Syntax, the rules for how words and morphemes combine to form larger units such as phrases and sentences [Wikpedia]. In English, the verb goes in between the subject and object, in German the order is subject-object-verb; in English the adjective goes before a noun (“a red book”) in Spanish it is after («un libro azule»). One of the foundational standards for RDF covers the Abstract Syntax for RDF: the use of properties and classes to make statements in the form of triples: Subject-property-Object; only non-Literals can be the Subject; from OWL object-properties are used with non-Literal values in the object position; data-properties go with Literals; and so on.
Style, grammar isn’t always 100% prescriptive: some people would rather die than split an infinitive, others are more relaxed; some people say “whom”, others only use it when they want to sound like a butler; and some people will end a sentence with with. RDF has differing styles too, largely influenced by the reason for using RDF. Formal ontologies in OWL which are designed for logical inferencing look different to loose ontologies with weak semantics designed for linked data.
Forms of Expression, a language can be written or spoken; if written there will be a writing system (an alphabet or a syllabary), sometimes a choice (e.g. katagana and hiragana for Japanese; or what you’re reading and Braille for English). For RDF these are called concrete syntaxes, and the expression is the serialization. Popular concrete syntaxes are N3, Turtle, JSON-LD (and RDF/XML is an unpopular syntax).
Speakers, a community of people wanting to say something. Tolkien said that his original interest was in creating new languages; the stories were his way of creating people who would use those languages. Likewise, RDF and CTDL would be nothing without users creating descriptions. There are lots of those: the Credential Finder has over 100,000 credentials described in CTDL, over 200,000 competencies, and many other resources; that’s a lot, though of course other data sets are bigger.
What do you think? Let me know if I got anything wrong, or if you would add anything.
The post RDF language… beyond the data dictionary appeared first on Sharing and learning.