- From: Graham Klyne <GK@Dial.pipex.com>
- Date: Wed, 20 Dec 2000 11:35:52 +0000
- To: RDF interest group <www-rdf-interest@w3.org>
Folks,
I find myself more often being asked to present RDF in simple terms: here
is something I put together recently in response to one such question.
Comments?
#g
--
Broadly, RDF maps a directed labelled graph (DLG) data model onto XML. The
graph nodes and arcs are labelled using URIs.
It also turns out that a relational data model is also easily mapped onto
this form, with a node corresponding to a table row or primitive value, and
an arc corresponding to a column identifier.
The RDF syntax defines a number of forms for XML that are easily mapped
onto the DLG structure. The basic RDF syntax can be rather cumbersome, but
if one assumes schema-aware RDF processing (or a special-purpose
processor), it is possible to design a reasonably neat RDF-compatible form
of XML for a typical application.
RDF does allow XML attributes to be used for arc names, but the syntax can
get very confusing. I'd suggest designing the format with just XML
elements initially, then mapping that to an attributes-as-arcs form
later. Hopefully, the result will be very close to an XML format one might
design for a specific application, with the possible benefit of a more
regular structure.
RDF XML syntax can use XML elements to name both graph nodes and arcs: one
tends to end up with an alternating nesting structure:
<Node-type-1 about="Node-name-1">
<arc-label-1>
<Node-type-2 about="Node-name-2">
<arc-label-2>
value
</arc-label-2>
:
</Node-type-2>
</arc-label-1>
<arc-label-3>
<Node-type-3 about="Node-name-3">
:
</Node-type-3>
</arc-label-3>
:
</Node-type-1>
Representing (best viewed with non-proportional font...):
[Node-name-1]
|
+--rdf:type-----> [Node-type-1]
+--arc-label-1--> [Node-name-2]
| |
| +--rdf:type-----> [Node-type-2]
| +--arc-label-2--> "value"
| :
|
+--arc-label-3--> [Node-name-3]
| |
| +--rdf:type-----> [Node-type-3]
| :
:
Where:
[x] denotes a resource named 'x' (e.g. a table row),
"foo" denotes a literal value (e.g. a column value in a row), and
--y--> denotes a property named 'y' (e.g. a column name).
I'm trying to show here that the basic structure of RDF is very simple,
even if the XML syntax (and the RDF specification) can be very confusing.
--end--
------------
Graham Klyne
(GK@ACM.ORG)
Received on Wednesday, 20 December 2000 07:01:13 UTC