Re: ACTION 610: Draft Meta Formats section for W3C site

Hi,

At the last TAG telcon [0] I was actioned to do another draft of text for the Metaformats section of the W3C site. Here it is. I have tried to address Henry and Jonathan's concerns over the XML and RDF sections of page, but if they provide alternative text that can just get slotted in as far as I'm concerned.

Thanks,

Jeni

[0]: http://www.w3.org/2001/tag/2012/03/01-minutes.html#item04

---
Metaformats are generic formats that people can adopt when creating their own application-specific languages without having to reinvent syntax. The terms that people use to specialise a metaformat are often called vocabularies. Examples of metaformats are XML [1], RDF [2] and JSON [3]. Metaformats offer advantages over creating a custom syntax for a language because they can be processed by generic tools, and languages that use them can be understood by people who have learned about the metaformat.

Metaformats usually have a schema language that can be used to define or describe a vocabulary that uses that metaformat, and query or transformation languages that can be used to access information within documents that use that metaformat.

What is XML?

XML is a metaformat that can be used for both documents and data. XML's unique strength lies in its ability to support mixed content: paragraphs of text in which particular words and phrases are marked up. Common XML-based languages in use today include XHTML [4] and Atom [5].

There are several schema languages for XML, including XML Schema [6] and RELAX NG [7], which enable XML-based languages to be validated. There are also generic methods for querying and transforming XML through XPath and XSLT [8], XQuery [9] and XML Processing pipelines [10].

What is RDF?

RDF is the underlying data model for a number of formats such as Turtle [13], and can be embedded within HTML using RDFa [14]. RDF is useful for describing graph structures in which each entity is named through a URL [11] and is thus the core data model for the Semantic Web [12]. Common RDF vocabularies, which can be used with any RDF syntax, are Dublin Core Terms [15], FOAF [16], SKOS [17] and schema.org [18].

RDF vocabularies can be described by RDF Schemas [19] or OWL Ontologies [20]. These are primarily used for inference: to deduce new information from data expressed in RDF. More flexible reasoning for RDF can be described using RIF [21]. Data stored within RDF stores, known as triplestores, can be queried and updated using SPARQL [22].

What is JSON?

JSON is a metaformat that is useful for expressing tree-based data structures. JSON's key benefit is that it tersely expresses the kinds of data structures commonly used in programming languages, particular Javascript, which makes it very easy to create and consume.

JSON is rarely used with a declarative schema and it is usually processed by being parsed into the native data structures used by a particular programming language. However, there are several query languages currently under development, including JSON Path [23], Jaql [24] and JSONiq [25]


[1] http://www.w3.org/standards/xml/
[2] http://www.w3.org/standards/semanticweb/
[3] http://www.ietf.org/rfc/rfc4627
[4] http://www.w3.org/standards/webdesign/htmlcss
[5] https://tools.ietf.org/html/rfc4287
[6] http://www.w3.org/standards/xml/schema
[7] http://relaxng.org/
[8] http://www.w3.org/standards/xml/transformation
[9] http://www.w3.org/standards/xml/query
[10] http://www.w3.org/standards/xml/processing
[11] http://www.w3.org/standards/webarch/identifiers
[12] http://www.w3.org/standards/semanticweb/ 
[13] http://www.w3.org/TR/turtle/
[14] http://www.w3.org/standards/techs/rdfa
[15] http://dublincore.org/documents/dcmi-terms/
[16] http://xmlns.com/foaf/spec/
[17] http://www.w3.org/standards/techs/skos
[18] http://schema.org/
[19] http://www.w3.org/standards/techs/rdf
[20] http://www.w3.org/standards/techs/owl
[21] http://www.w3.org/standards/techs/rif
[22] http://www.w3.org/standards/semanticweb/query
[23] http://goessner.net/articles/JsonPath/
[24] https://code.google.com/p/jaql/wiki/JaqlOverview
[25] http://jsoniq.org/

-- 
Jeni Tennison
http://www.jenitennison.com

Received on Tuesday, 6 March 2012 18:14:05 UTC