Title: XML Design (A Gentle Transition from XML to RDF)
1XML Design(A Gentle Transition from XML to RDF)
- Roger L. Costello
- David B. Jacobs
- The MITRE Corporation
- (The creation of this tutorial was sponsored by
DARPA)
2Acknowledgments
- We are very grateful to the Defense Agency
Research Projects Agency (DARPA) for funding the
creation of this tutorial. We are especially
grateful to Murray Burke (DARPA) and John Flynn
(BBN) for making it all happen. - Special thanks to Frank Manola for answering our
many questions.
3What is the Purpose of RDF?
- The purpose of RDF (Resource Description
Framework) is to give a standard way of
specifying data "about" something. - Here's an example of an XML document that
specifies data about China's Yangtze river
lt?xml version"1.0"?gt ltRiver id"Yangtze"
xmlns"http//www.geodesy.org/river"gt
ltlengthgt6300 kilometerslt/lengthgt
ltstartingLocationgtwestern China's Qinghai-Tibet
Plateault/startingLocationgt
ltendingLocationgtEast China Sealt/endingLocationgt lt/
Rivergt
"Here is data about the Yangtze River. It has a
length of 6300 kilometers. Its startingLocation
is western China's Qinghai-Tibet Plateau. Its
endingLocation is the East China Sea."
4XML --gt RDF
5The RDF Format
RDF provides an ID attribute for identifying the
resource being described.
1
The ID attribute is in the RDF namespace.
2
lt?xml version"1.0"?gt ltRiver rdfID"Yangtze"
xmlnsrdf"http//www.w3.org/1999/02/22-rd
f-syntax-ns" xmlns"http//www.geodes
y.org/river"gt ltlengthgt6300
kilometerslt/lengthgt ltstartingLocationgtwestern
China's Qinghai-Tibet Plateault/startingLocationgt
ltendingLocationgtEast China
Sealt/endingLocationgt lt/Rivergt
Add the "fragment identifier symbol" to the
namespace.
3
6The RDF Format (cont.)
7Namespace Convention
8The RDF Format
lt?xml version"1.0"?gt ltClass rdfID"Resource"
xmlnsrdf"http//www.w3.org/1999/02/22-r
df-syntax-ns" xmlns"uri"gt
ltpropertygtvaluelt/propertygt
ltpropertygtvaluelt/propertygt ... lt/Classgt
9Advantage of using the RDF Format
- You may ask "Why should I bother designing my
XML to be in the RDF format?" - Answer there are numerous benefits
- The RDF format, if widely used, will help to make
XML more interoperable - Tools can instantly characterize the structure,
"this element is a type (class), and here are its
properties. - RDF promotes the use of standardized vocabularies
... standardized types (classes) and standardized
properties. - The RDF format gives you a structured approach to
designing your XML documents. The RDF format is
a regular, recurring pattern. - It enables you to quickly identify weaknesses and
inconsistencies of non-RDF-compliant XML designs.
It helps you to better understand your data! - You reap the benefits of both worlds
- You can use standard XML editors and validators
to create, edit, and validate your XML. - You can use the RDF tools to apply inferencing to
the data. - It positions your data for the Semantic Web!
Interoperability
Network effect
10Disadvantage of using the RDF Format
- Constrained the RDF format constrains you on how
you design your XML (i.e., you can't design your
XML in any arbitrary fashion). - RDF uses namespaces to uniquely identify types
(classes), properties, and resources. Thus, you
must have a solid understanding of namespaces. - Another XML vocabulary to learn to use the RDF
format you must learn the RDF vocabulary.
11Uniquely Identify the Resource
- Earlier we said that RDF is very concerned about
uniquely identifying the type (class) and the
properties. RDF is also very concerned about
uniquely identifying the resource, e.g.,
This is the resource being described. We want to
uniquely identify this resource.
lt?xml version"1.0"?gt ltRiver rdfID"Yangtze"
xmlnsrdf"http//www.w3.org/1999/02/22-rd
f-syntax-ns" xmlns"http//www.geodes
y.org/river"gt ltlengthgt6300
kilometerslt/lengthgt ltstartingLocationgtwestern
China's Qinghai-Tibet Plateault/startingLocationgt
ltendingLocationgtEast China
Sealt/endingLocationgt lt/Rivergt
12rdfID
- The value of rdfID is a "relative URI".
- The "complete URI" is obtained by concatenating
the URL of the XML document with "" and then the
value of rdfID, e.g.,
lt?xml version"1.0"?gt ltRiver rdfID"Yangtze"
xmlnsrdf"http//www.w3.org/1999/02/22-rd
f-syntax-ns" xmlns"http//www.geodes
y.org/river"gt ltlengthgt6300
kilometerslt/lengthgt ltstartingLocationgtwestern
China's Qinghai-Tibet Plateault/startingLocationgt
ltendingLocationgtEast China
Sealt/endingLocationgt lt/Rivergt
Yangtze.rdf
Suppose that this RDF/XML document is located at
this URL http//www.china.org/geography/rivers. T
hus, the complete URI for this resource is
http//www.china.org/geography/riversYangtze
13xmlbase
- On the previous slide we showed how the URL of
the document provided the base URI. - Depending on the location of the document is
brittle it will break if the document is moved,
or is copied to another location. - A more robust solution is to specify the base URI
in the document, e.g.,
lt?xml version"1.0"?gt ltRiver rdfID"Yangtze"
xmlnsrdf"http//www.w3.org/1999/02/22-rd
f-syntax-ns" xmlns"http//www.geodes
y.org/river" xmlbase"http//www.chi
na.org/geography/rivers"gt ltlengthgt6300
kilometerslt/lengthgt ltstartingLocationgtwestern
China's Qinghai-Tibet Plateault/startingLocationgt
ltendingLocationgtEast China
Sealt/endingLocationgt lt/Rivergt
Resource URI concatenation(xmlbase, '',
rdfID)
concatenation(http//www.china.org/geography/river
s, '', "Yangtze")
http//www.china.org/geography/riversYangtze
14rdfabout
- Instead of identifying a resource with a relative
URI (which then requires a base URI to be
prepended), we can give the complete identity of
a resource. However, we use rdfabout, rather
than rdfID, e.g.,
lt?xml version"1.0"?gt ltRiver rdfabout"http//www
.china.org/geography/riversYangtze"
xmlnsrdf"http//www.w3.org/1999/02/22-rdf-syntax
-ns" xmlns"http//www.geodesy.org/ri
ver"gt ltlengthgt6300 kilometerslt/lengthgt
ltstartingLocationgtwestern China's Qinghai-Tibet
Plateault/startingLocationgt
ltendingLocationgtEast China Sealt/endingLocationgt lt/
Rivergt
15Triple -gt resource/property/value
16The RDF Format triples!
- The fundamental design pattern of RDF is to
structure your XML data as resource/property/value
triples!
lt?xml version"1.0"?gt ltResource-Agt
ltproperty-Agt ltResource-Bgt
ltproperty-Bgt ltResource-Cgt
ltproperty-Cgt
Value-C
lt/property-Cgt lt/Resource-Cgt
lt/property-Bgt
lt/Resource-Bgt lt/property-Agt lt/Resource-Agt
Notice that the RDF design pattern is
an alternating sequence of resource-property. Thi
s pattern is known as "striping".
value of property-A
value of property-B
The value of a property can be a literal (e.g.,
length has a value of 6300 kilometers). Also, the
value of a property can be a resource, as shown
above (e.g., property-A has a value of
Resource-B, property-B has a value of
Resource-C). We will see examples of properties
having a resource value in a little bit.
17Naming Convention
- The convention is to use a capital letter to
start a type (class) name, and use a lowercase
letter to start a property name. - This helps the eye quickly discern the striping
pattern.
lt?xml version"1.0"?gt ltRiver rdfabout"http//www
.china.org/geography/riversYangtze"
xmlnsrdf"http//www.w3.org/1999/02/22-rdf-syntax
-ns" xmlns"http//www.geodesy.org/ri
ver"gt ltlengthgt6300 kilometerslt/lengthgt
ltstartingLocationgtwestern China's Qinghai-Tibet
Plateault/startingLocationgt
ltendingLocationgtEast China Sealt/endingLocationgt lt/
Rivergt
uppercase
lowercase
18RDF Model (graph)
Legend Ellipse indicates "Resource"
Rectangle indicates "literal string value"
19rdfDescription rdftype
- There is still another way of representing the
XML. This way makes it very clear that you are
describing something, and it makes it very clear
what the type (class) is of the thing you are
describing
lt?xml version"1.0"?gt ltrdfDescription
rdfabout"http//www.china.org/geography/riversY
angtze"
xmlnsrdf"http//www.w3.org/1999/02/22-rdf-syntax
-ns"
xmlns"http//www.geodesy.org/river"gt
ltrdftype rdfresource"http//www.geodesy.org/riv
erRiver"/gt ltlengthgt6300 kilometerslt/lengthgt
ltstartingLocationgtwestern China's
Qinghai-Tibet Plateault/startingLocationgt
ltendingLocationgtEast China Sealt/endingLocationgt lt/
rdfDescriptiongt
This is read as "This is a Description about the
resource http//www.china.org/geography/riversYan
gtze. This resource is an instance of the River
type (class). The http//www.china.org/geography/r
iversYangtze resource has a length of 6300
kilometers, a startingLocation of western China's
Qinghai-Tibet Plateau, and an endingLocation of
the East China Sea."
Note this form of describing a resource is
called the "long form". The form we have seen
previously is an abbreviation of this long form.
An RDF Parser interprets the abbreviated form as
if it were this long form.
20Alternative
- Alternatively we can use rdfID rather than
rdfabout, as shown here
lt?xml version"1.0"?gt ltrdfDescription
rdfID"Yangtze"
xmlnsrdf"http//www.w3.org/1999/02/22-rdf-syntax
-ns"
xmlns"http//www.geodesy.org/river"
xmlbase"http//www.china.org/geo
graphy/rivers"gt ltrdftype rdfresource"http
//www.geodesy.org/riverRiver"/gt
ltlengthgt6300 kilometerslt/lengthgt
ltstartingLocationgtwestern China's Qinghai-Tibet
Plateault/startingLocationgt
ltendingLocationgtEast China Sealt/endingLocationgt lt/
rdfDescriptiongt
21Equivalent Representations!
Note In the RDF literature the examples are
typically shown in this form.
22RDF Namespace
23Terminology
- As you read the RDF literature you may see the
following terminology - Subject this term refers to the item that is
playing the role of the resource. - predicate this term refers to the item that is
playing the role of the property. - Object this term refers to the item that is
playing the role of the value.
24RDF Parser
- There is a nice RDF parser at the W3 Web site
http//www.w3.org/RDF/Validator/
This RDF parser will tell you if your XML is in
the proper RDF format.
25Example 2
Modify the following XML document so that it is
RDF-compliant
lt?xml version"1.0"?gt ltRiver id"Yangtze"
xmlns"http//www.geodesy.org/river"gt
ltlengthgt6300 kilometerslt/lengthgt
ltstartingLocationgtwestern China's Qinghai-Tibet
Plateault/startingLocationgt
ltendingLocationgtEast China Sealt/endingLocationgt
ltDam id"ThreeGorges"
xmlns"http//www.geodesy.org/dam"gt
ltnamegtThe Three Gorges Damlt/namegt
ltwidthgt1.5 mileslt/widthgt ltheightgt610
feetlt/heightgt ltcostgt30 billionlt/costgt
lt/Damgt lt/Rivergt
Yangtze2.xml
26Note the two types (classes)
Dam
River
Instance Yangtze Properties length startingLoc
ation endingLocation
Instance ThreeGorges Properties name width he
ight cost
27Dam - out of place
lt?xml version"1.0"?gt ltRiver id"Yangtze"
xmlns"http//www.geodesy.org/river"gt
ltlengthgt6300 kilometerslt/lengthgt
ltstartingLocationgtwestern China's Qinghai-Tibet
Plateault/startingLocationgt
ltendingLocationgtEast China Sealt/endingLocationgt
ltDam id"ThreeGorges"
xmlns"http//www.geodesy.org/dam"gt
ltnamegtThe Three Gorges Damlt/namegt
ltwidthgt1.5 mileslt/widthgt ltheightgt610
feetlt/heightgt ltcostgt30 billionlt/costgt
lt/Damgt lt/Rivergt
Dam
Types (classes) contain properties . Here we see
the River type containing the properties -
length, startingLocation, and endingLocation. It
also shows River containing a type - Dam. Thus,
there is a Resource that contains another
Resource. This is inconsistent with RDF design
pattern. (We are seeing one of the benefits of
using the RDF format - to identify
inconsistencies in an XML design.)
28Property value must be a Literal or a Resource
ltlengthgt6300 kilometerslt/lengthgt
property
Value is a Literal
ltobstaclegt ltDam id"ThreeGorges"
xmlns"http//www.geodesy.org/dam"gt
ltnamegtThe Three Gorges Damlt/namegt
ltwidthgt1.5 mileslt/widthgt ltheightgt610
feetlt/heightgt ltcostgt30 billionlt/costgt
lt/Damgt lt/obstaclegt
property
Value is a Resource
29Modified XML (to make it consistent)
lt?xml version"1.0"?gt ltRiver id"Yangtze"
xmlns"http//www.geodesy.org/river"gt
ltlengthgt6300 kilometerslt/lengthgt
ltstartingLocationgtwestern China's Qinghai-Tibet
Plateault/startingLocationgt
ltendingLocationgtEast China Sealt/endingLocationgt
ltobstaclegt ltDam id"ThreeGorges"
xmlns"http//www.geodesy.org/dam"gt
ltnamegtThe Three Gorges Damlt/namegt
ltwidthgt1.5 mileslt/widthgt
ltheightgt610 feetlt/heightgt ltcostgt30
billionlt/costgt lt/Damgt
lt/obstaclegt lt/Rivergt
Yangtze2,v2.xml
"The Yangtze River has an obstacle that is the
ThreeGorges Dam. The Dam has a name - The Three
Gorges Dam. It has a width of 1.5 miles, a
height of 610 feet, and a cost of 30 billion."
30RDF Format
lt?xml version"1.0"?gt ltRiver rdfID"Yangtze"
xmlnsrdf"http//www.w3.org/1999/02/22-rd
f-syntax-ns" xmlns"http//www.geodes
y.org/river" xmlbase"http//www.chi
na.org/geography/rivers"gt ltlengthgt6300
kilometerslt/lengthgt ltstartingLocationgtwestern
China's Qinghai-Tibet Plateault/startingLocationgt
ltendingLocationgtEast China
Sealt/endingLocationgt ltobstaclegt
ltDam rdfID"ThreeGorges"
xmlns"http//www.geodesy.org/dam"gt
ltnamegtThe Three Gorges Damlt/namegt
ltwidthgt1.5 mileslt/widthgt ltheightgt610
feetlt/heightgt ltcostgt30
billionlt/costgt lt/Damgt
lt/obstaclegt lt/Rivergt
Changed id to rdfID
Added the '' symbol
As always, the other representations using
rdfabout and rdfDescription are available.
31RDF Model (graph)
32Alternatively, suppose that someone has already
created a document containing information about
the Three Gorges Dam
lt?xml version"1.0"?gt ltDam rdfID"ThreeGorges"
xmlnsrdf"http//www.w3.org/1999/02/22-
rdf-syntax-ns" xmlns"http//www.geode
sy.org/dam" xmlbase"http//www.china
.org/geography/rivers"gt ltnamegtThe Three
Gorges Damlt/namegt ltwidthgt1.5 mileslt/widthgt
ltheightgt610 feetlt/heightgt ltcostgt30
billionlt/costgt lt/Damgt
Three-Gorges-Dam.rdf
Then we can simply reference the Three Gorges Dam
resource using rdfresource, as shown here
lt?xml version"1.0"?gt ltRiver rdfID"Yangtze"
xmlnsrdf"http//www.w3.org/1999/02/22-rd
f-syntax-ns" xmlns"http//www.geodes
y.org/river" xmlbase"http//www.chi
na.org/geography/rivers"gt ltlengthgt6300
kilometerslt/lengthgt ltstartingLocationgtwestern
China's Qinghai-Tibet Plateault/startingLocationgt
ltendingLocationgtEast China
Sealt/endingLocationgt ltobstacle
rdfresource"http//www.china.org/geography/river
sThreeGorges"/gt lt/Rivergt
Yangtze.rdf
33Note reference is to a resource, not to a file
34Anyone, Anywhere, Anytime Can Talk About a
Resource
- In all of our examples we have provided a unique
identifier to resources, e.g.,
http//www.china.org/geography/riversYangtze
- Consequently, if another RDF document identifies
the same resource then the data that it specifies
gives additional data about that resource. - An aggregator tool will be able to collect all
data about a resource and present a consolidated
set of data for the resource. That's powerful!
35rdfID versus rdfabout
- When should rdfID be used? When should
rdfabout be used? - When you want to introduce a resource, and
provide an initial set of information about a
resource use rdfID - When you want to extend the information about a
resource use rdfabout - The RDF philosophy is akin to the Web philosophy.
That is, anyone, anywhere, anytime can provide
information about a resource.
36lt?xml version"1.0"?gt ltRiver rdfabout"http//www
.china.org/geography/riversYangtze"
xmlnsrdf"http//www.w3.org/1999/02/22-rdf-syntax
-ns" xmlns"http//www.geodesy.org/ri
ver"gt ltlengthgt6300 kilometerslt/lengthgt
ltstartingLocationgtwestern China's Qinghai-Tibet
Plateault/startingLocationgt
ltendingLocationgtEast China Sealt/endingLocationgt lt/
Rivergt
http//www.china.org/geography/rivers/yangtze.rdf
lt?xml version"1.0"?gt ltRiver rdfabout"http//www
.china.org/geography/riversYangtze"
xmlnsrdf"http//www.w3.org/1999/02/22-rdf-syntax
-ns" xmlns"http//www.geodesy.org/ri
ver"gt ltnamegtDri Chu - Female Yak
Riverlt/namegt ltnamegtTongtian He,
Travelling-Through-the-Heavens Riverlt/namegt
ltnamegtJinsha Jiang, River of Golden Sandlt/namegt
lt/Rivergt
http//www.encyclopedia.org/yangtze-alternate-name
s.rdf
Aggregator tool collects data about the Yangtze
lt?xml version"1.0"?gt ltRiver rdfabout"http//www
.china.org/geography/riversYangtze"
xmlnsrdf"http//www.w3.org/1999/02/22-rdf-syntax
-ns" xmlns"http//www.geodesy.org/ri
ver"gt ltlengthgt6300 kilometerslt/lengthgt
ltstartingLocationgtwestern China's Qinghai-Tibet
Plateault/startingLocationgt
ltendingLocationgtEast China Sealt/endingLocationgt
ltnamegtDri Chu - Female Yak Riverlt/namegt
ltnamegtTongtian He, Travelling-Through-the-Heavens
Riverlt/namegt ltnamegtJinsha Jiang, River of
Golden Sandlt/namegt lt/Rivergt
A distributed network of data!
Aggregated Data!
37lt?xml version"1.0"?gt ltDam rdfID"ThreeGorges"
xmlnsrdf"http//www.w3.org/1999/02/22-r
df-syntax-ns" xmlns"http//www.geodes
y.org/dam" xmlbase"http//www.china.
org/geography/rivers"gt ltnamegtThe Three
Gorges Damlt/namegt ltwidthgt1.5 mileslt/widthgt
ltheightgt610 feetlt/heightgt ltcostgt30
billionlt/costgt lt/Damgt
Another Example of Aggregation
http//www.encyclopedia.org/three-gorges-dam.rdf
lt?xml version"1.0"?gt ltRiver rdfID"Yangtze"
xmlnsrdf"http//www.w3.org/1999/02/22-rd
f-syntax-ns" xmlns"http//www.geodes
y.org/river" xmlbase"http//www.chi
na.org/geography/rivers"gt ltlengthgt6300
kilometerslt/lengthgt ltstartingLocationgtwestern
China's Qinghai-Tibet Plateault/startingLocationgt
ltendingLocationgtEast China
Sealt/endingLocationgt ltobstacle
rdfresource"http//www.china.org/geography/river
s ThreeGorges"/gt lt/Rivergt
Aggregate!
http//www.china.org/geography/rivers/yangtze.rdf
lt?xml version"1.0"?gt ltRiver rdfID"Yangtze"
xmlnsrdf"http//www.w3.org/1999/02/22-rd
f-syntax-ns" xmlns"http//www.geodes
y.org/river" xmlbase"http//www.chi
na.org/geography/rivers"gt ltlengthgt6300
kilometerslt/lengthgt ltstartingLocationgtwestern
China's Qinghai-Tibet Plateault/startingLocationgt
ltendingLocationgtEast China
Sealt/endingLocationgt ltobstaclegt
ltDam rdfID"ThreeGorges"
xmlns"http//www.geodesy.org/dam"gt
ltnamegtThe Three Gorges Damlt/namegt
ltwidthgt1.5 mileslt/widthgt ltheightgt610
feetlt/heightgt ltcostgt30
billionlt/costgt lt/Damgt
lt/obstaclegt lt/Rivergt
Note that the reference to the ThreeGorges Dam
resource has been replaced by whatever
information the aggregator could find on this
resource!
38Example 3
Notice that in this XML document there is no
unique identifier
lt?xml version"1.0"?gt ltRiver xmlns"http//www.geo
desy.org/river"gt ltnamegtYangtzelt/namegt
ltlengthgt6300 kilometerslt/lengthgt
ltstartingLocationgtwestern China's Qinghai-Tibet
Plateault/startingLocationgt
ltendingLocationgtEast China Sealt/endingLocationgt lt/
Rivergt
XML
Yangtze3.xml
lt?xml version"1.0"?gt ltRiver xmlns"http//www.geo
desy.org/river"gt ltnamegtYangtzelt/namegt
ltlengthgt6300 kilometerslt/lengthgt
ltstartingLocationgtwestern China's Qinghai-Tibet
Plateault/startingLocationgt
ltendingLocationgtEast China Sealt/endingLocationgt lt/
Rivergt
The RDF is identical to the XML!
RDF
Yangtze3.rdf
39Interpreting the RDF
lt?xml version"1.0"?gt ltRiver xmlns"http//www.geo
desy.org/river"gt ltnamegtYangtzelt/namegt
ltlengthgt6300 kilometerslt/lengthgt
ltstartingLocationgtwestern China's Qinghai-Tibet
Plateault/startingLocationgt
ltendingLocationgtEast China Sealt/endingLocationgt lt/
Rivergt
Yangtze3.rdf
This is read as "This is an instance of the
River type (class). The River has a name of
Yangtze, a length of 6300 kilometers, a
startingLocation of western China's
Qinghai-Tibet Plateau, and an endingLocation of
the East China Sea."
In this document the resource is anonymous - it
has no identifier.
40Disadvantage of anonymous resources
lt?xml version"1.0"?gt ltRiver xmlns"http//www.geo
desy.org/river"gt ltnamegtYangtzelt/namegt
ltlengthgt6300 kilometerslt/lengthgt
ltstartingLocationgtwestern China's Qinghai-Tibet
Plateault/startingLocationgt
ltendingLocationgtEast China Sealt/endingLocationgt lt/
Rivergt
http//www.china.org/geography/rivers/yangtze.rdf
lt?xml version"1.0"?gt ltRiver xmlns"http//www.geo
desy.org/river"gt ltnamegtYangtzelt/namegt
ltnamegtDri Chu - Female Yak Riverlt/namegt
ltnamegtTongtian He, Travelling-Through-the-Heavens
Riverlt/namegt ltnamegtJinsha Jiang, River of
Golden Sandlt/namegt lt/Rivergt
http//www.encyclopedia.org/yangtze-alternate-name
s.rdf
Aggregate
An aggregator tool will not be able to determine
if these documents are talking about the same
resource.
41Example 4
Yangtze4.xml
lt?xml version"1.0"?gt ltRiver rdfID"Yangtze"
xmlnsrdf"http//www.w3.org/1999/02/22-rd
f-syntax-ns" xmlns"http//www.geodes
y.org/river" xmlnsuom"http//www.me
asurements.org/units-of-measure"gt ltlengthgt
ltrdfDescriptiongt
ltrdfvaluegt6300lt/rdfvaluegt
ltuomunitsgtkilometerslt/uomunitsgt
lt/rdfDescriptiongt lt/lengthgt
ltstartingLocationgtwestern China's Qinghai-Tibet
Plateault/startingLocationgt
ltendingLocationgtEast China Sealt/endingLocationgt lt/
Rivergt
RDF
Yangtze4.rdf
42lt?xml version"1.0"?gt ltRiver id"Yangtze"
xmlns"http//www.geodesy.org/river"
xmlnsuom"http//www.measurements.org/units-of
-measure"gt ltlength uomunits"kilometers"gt63
00lt/lengthgt ltstartingLocationgtwestern
China's Qinghai-Tibet Plateault/startingLocationgt
ltendingLocationgtEast China Sealt/endingLocation
gt lt/Rivergt
Yangtze4.xml
RDF does not allow attributes on the properties
(except for special RDF attributes such as
rdfresource). So we need to make the uomunits
attribute a child element. Your first instinct
might be to modify length to have two child
elements
43rdfvalue
6300
length
kilometers
length has two values - 6300 and kilometers. RDF
provides a special property, rdfvalue, to be
used for specifying the "primary" value. In this
example, 6300 is the primary value,
and kilometers is a value which provides
additional information about the primary value.
44RDF Format
lt?xml version"1.0"?gt ltRiver rdfID"Yangtze"
xmlnsrdf"http//www.w3.org/1999/02/22-rd
f-syntax-ns" xmlns"http//www.geodes
y.org/river" xmlnsuom"http//www.me
asurements.org/units-of-measure"gt ltlengthgt
ltrdfDescriptiongt
ltrdfvaluegt6300lt/rdfvaluegt
ltuomunitsgtkilometerslt/uomunitsgt
lt/rdfDescriptiongt lt/lengthgt
ltstartingLocationgtwestern China's Qinghai-Tibet
Plateault/startingLocationgt
ltendingLocationgtEast China Sealt/endingLocationgt lt/
Rivergt
An anonymous resource
Yangtze4.rdf
Read this as "The Yangtze River has a length
whose value is a resource which has a value of
6300 and whose units is kilometers.
45Advantage of anonymous resources
46RDF Model (graph)
Legend
An anonymous resource (also called a "blank
node"). That is, a resource with no identifier.
(Note RDF Parsers will typically generate a
unique identifier for anonymous resources,
to distinguish one anonymous resource from
another.)
47rdfparseType"Resource"
If the value of a property is comprised of
several values then one option is to create an
anonymous resource, as we saw. RDF provides a
shorthand, so that you don't need to create an
rdfDescription element, by using
rdfparseType"Resource", as shown here
lt?xml version"1.0"?gt ltRiver rdfID"Yangtze"
xmlnsrdf"http//www.w3.org/1999/02/22-rd
f-syntax-ns" xmlns"http//www.geodes
y.org/river" xmlnsuom"http//www.me
asurements.org/units-of-measure"gt ltlength
rdfparseType"Resource"gt
ltrdfvaluegt6300lt/rdfvaluegt
ltuomunitsgtkilometerslt/uomunitsgt lt/lengthgt
ltstartingLocationgtwestern China's
Qinghai-Tibet Plateault/startingLocationgt
ltendingLocationgtEast China Sealt/endingLocationgt lt/
Rivergt
Yangtze4,v2.rdf
The meaning of this is identical to that shown on
the previous slide.
48Equivalent!
ltlengthgt ltrdfDescriptiongt
ltrdfvaluegt6300lt/rdfvaluegt
ltuomunitsgtkilometerslt/uomunitsgt
lt/rdfDescriptiongt lt/lengthgt
ltlength rdfparseType"Resource"gt
ltrdfvaluegt6300lt/rdfvaluegt
ltuomunitsgtkilometerslt/uomunitsgt lt/lengthgt
49Summary
Modify the following XML document so that it is
also a valid RDF document
lt?xml version"1.0"?gt ltRiver id"Yangtze"
xmlns"http//www.geodesy.org/river"
xmlnsuom"http//www.measurements.org/units-of
-measure"gt ltlength uomunits"kilometers"gt63
00lt/lengthgt ltstartingLocationgtwestern
China's Qinghai-Tibet Plateault/startingLocationgt
ltendingLocationgtEast China Sealt/endingLocation
gt ltDam id"ThreeGorges"
xmlns"http//www.geodesy.org/dam"gt
ltnamegtThe Three Gorges Damlt/namegt
ltwidthgt1.5 mileslt/widthgt ltheightgt610
feetlt/heightgt ltcostgt30 billionlt/costgt
lt/Damgt lt/Rivergt
Yangtze.xml
See next slide --gt
50RDF Format!
lt?xml version"1.0"?gt ltRiver rdfID"Yangtze"
xmlnsrdf"http//www.w3.org/1999/02/22-rd
f-syntax-ns" xmlns"http//www.geodes
y.org/river" xmlnsuom"http//www.me
asurements.org/units-of-measure"
xmlbase"http//www.china.org/geography/rivers"gt
ltlength rdfparseType"Resource"gt
ltrdfvaluegt6300lt/rdfvaluegt
ltuomunitsgtkilometerslt/uomunitsgt lt/lengthgt
ltstartingLocationgtwestern China's
Qinghai-Tibet Plateault/startingLocationgt
ltendingLocationgtEast China Sealt/endingLocationgt
ltobstaclegt ltDam rdfID"ThreeGorges"
xmlns"http//www.geodesy.org/d
am"gt ltnamegtThe Three Gorges
Damlt/namegt ltwidthgt1.5 mileslt/widthgt
ltheightgt610 feetlt/heightgt
ltcostgt30 billionlt/costgt lt/Damgt
lt/obstaclegt lt/Rivergt
With relatively few changes the XML document is
now usable by both XML tools and RDF tools!
Yangtze.rdf
51Example 5
lt?xml version"1.0"?gt ltRiver rdfID"Yangtze"
xmlnsrdf"http//www.w3.org/1999/02/22-rd
f-syntax-ns" xmlns"http//www.geodes
y.org/river" xmlnsuom"http//www.me
asurements.org/units-of-measure"gt ltlength
rdfparseType"Resource"gt
ltrdfvaluegt6300lt/rdfvaluegt
ltuomunitsgtkilometerslt/uomunitsgt lt/lengthgt
ltmaxWidth rdfparseType"Resource"gt
ltrdfvaluegt175lt/rdfvaluegt
ltuomunitsgtmeterslt/uomunitsgtlt/maxWidthgt
ltmaxDepth rdfparseType"Resource"gt
ltrdfvaluegt55lt/rdfvaluegt
ltuomunitsgtkilometerslt/uomunitsgt
lt/maxDepthgt lt/Rivergt
This is one way of doing it. Now we will see a
better way - using "typed literals". (See next
slide)
Yangtze5.rdf
52Alternate RDF Format
lt?xml version"1.0"?gt ltRiver rdfID"Yangtze"
xmlnsrdf"http//www.w3.org/1999/02/22-rd
f-syntax-ns" xmlns"http//www.geodes
y.org/river"gt ltlength rdfdatatype"http//w
ww.uom.org/distancekilometer"gt6300lt/lengthgt
ltmaxWidth rdfdatatype"http//www.uom.org/distanc
emeter"gt175lt/maxWidthgt ltmaxDepth
rdfdatatype"http//www.uom.org/distancemeter"gt5
5lt/maxDepthgt lt/Rivergt
Yangtze5.rdf
With rdfdatatype you can give a property's value
a datatype label. The rdfdatatype value acts as
a semantic label for the datatype of the
value. This is called a typed literal. For this
example there must be a namespace,
http//www.uom.org/distance, which defines two
datatypes - kilometer and meter. On the next
slide is shown how to do this using XML Schemas.
53Defining the kilometer and meter datatypes using
XML Schemas
lt?xml version"1.0" encoding"UTF-8"?gt ltschema
xmlnsxsd"http//www.w3.org/2001/XMLSchema"
targetNamespace"http//www.uom.org/dist
ance"gt ltsimpleType name"kilometer"gt
ltrestriction base"integer"gt
lt/restrictiongt lt/simpleTypegt
ltsimpleType name"meter"gt ltrestriction
base"integer"gt lt/restrictiongt
lt/simpleTypegt lt/schemagt
uom.xsd
54Another example using rdfdatatype
lt?xml version"1.0"?gt ltPerson rdfID"JohnSmith"
xmlnsrdf"http//www.w3.org/1999/02/
22-rdf-syntax-ns"
xmlns"http//www.person.org"gt ltage
rdfdatatype"http//www.w3.org/2001/XMLSchemanon
NegativeInteger"gt30lt/agegt lt/Persongt
In this example we are specifying that the value
(30) of age is a nonNegativeInteger (which is
defined in the XML Schema namespace).
55Example 6
Modify the following XML document so that it is
also a valid RDF document
lt?xml version"1.0"?gt ltWeatherReading
xmlns"http//www.meteorology.org"gt
ltWeathergt lttemperaturegt-2 degrees
Celsiuslt/temperaturegt ltbarometergt30.4
(rising)lt/barometergt lt/Weathergt
ltLocation xmlns"http//www.geodesy.org"gt
ltcountrygtUSAlt/countrygt
ltstategtMassachusettslt/stategt
ltcitygtBostonlt/citygt lt/Locationgt
ltdatetimegtJanuary 22, 2003, 1115
ESTlt/datetimegt lt/WeatherReadinggt
WMUR_TV_WeatherReading.xml
56Things to note
1. The XML document is using three types
(classes)
2. The 3 type instances are anonymous.
Consequently, we cannot benefit from others,
and others cannot benefit from us. Where does
it make sense to give an identifier to an
instance? - In general, the root element
should have an identifier. - There is lots of
information about Boston. Let's give the
Location instance an identifier.
57Modification 1 Identifiers added
lt?xml version"1.0"?gt ltWeatherReading
id"BOS-012203-1115"
xmlns"http//www.meteorology.org"gt
ltWeathergt lttemperaturegt-2 degrees
Celsiuslt/temperaturegt ltbarometergt30.4
(rising)lt/barometergt lt/Weathergt
ltLocation id"BOS"
xmlns"http//www.geodesy.org"gt
ltcountrygtUSAlt/countrygt
ltstategtMassachusettslt/stategt
ltcitygtBostonlt/citygt lt/Locationgt
ltdatetimegtJanuary 22, 2003, 1115
ESTlt/datetimegt lt/WeatherReadinggt
WMUR_TV_WeatherReading,v2.xml
58Modification 2 Create a property for the
Weather, Location types
Types (classes) contain properties. We need to
wrap the Weather and Location types within a
property
lt?xml version"1.0"?gt ltWeatherReading
id"BOS-012203-1115"
xmlns"http//www.meteorology.org"gt
ltinstrumentReadinggt ltWeathergt
lttemperaturegt-2 degrees Celsiuslt/temperaturegt
ltbarometergt30.4
(rising)lt/barometergt lt/Weathergt
lt/instrumentReadinggt ltinstrumentLocationgt
ltLocation id"BOS"
xmlns"http//www.geodesy.org"gt
ltcountrygtUSAlt/countrygt
ltstategtMassachusettslt/stategt
ltcitygtBostonlt/citygt lt/Locationgt
lt/instrumentLocationgt ltdatetimegtJanuary 22,
2003, 1115 ESTlt/datetimegt lt/WeatherReadinggt
WMUR_TV_WeatherReading,v3.xml
59RDF Format!
lt?xml version"1.0"?gt ltWeatherReading
rdfID"BOS-012203-1115"
xmlnsrdf"http//www.w3.org/1999/02/22-rdf-s
yntax-ns"
xmlns"http//www.meteorology.org"
xmlbase"http//www.wmur-tv.com/w
eather"gt ltinstrumentReadinggt
ltWeathergt lttemperaturegt-2 degrees
Celsiuslt/temperaturegt
ltbarometergt30.4 (rising)lt/barometergt
lt/Weathergt lt/instrumentReadinggt
ltinstrumentLocationgt ltLocation
rdfID"BOS"
xmlns"http//www.geodesy.org"
xmlbase"http//www.airports.org/icao"gt
ltcountrygtUSAlt/countrygt
ltstategtMassachusettslt/stategt
ltcitygtBostonlt/citygt lt/Locationgt
lt/instrumentLocationgt ltdatetimegtJanuary 22,
2003, 1115 ESTlt/datetimegt lt/WeatherReadinggt
WMUR_TV_WeatherReading.rdf
60The rdfBag type (class)
- The rdfBag type is used to represent an
unordered collection.
61Example 7
Modify the following XML document so that it is
also a valid RDF document
lt?xml version"1.0"?gt ltMeeting id"XML-Design-Patt
erns" xmlns"http//www.business.o
rg"gt ltattendeesgt ltnamegtJohn
Smithlt/namegt ltnamegtSally Joneslt/namegt
lt/attendeesgt lt/Meetinggt
DesignMeeting.xml
lt?xml version"1.0"?gt ltMeeting rdfID"XML-Design-
Pattern" xmlnsrdf"http//www.w3.
org/1999/02/22-rdf-syntax-ns"
xmlns"http//www.business.org"gt
ltattendeesgt ltrdfBaggt
ltnamegtJohn Smithlt/namegt
ltnamegtSally Joneslt/namegt lt/rdfBaggt
lt/attendeesgt lt/Meetinggt
rdfBag makes it clear that this is an
unordered collection of names.
DesignMeeting.rdf
62The rdfAlt type (class)
- The rdfAlt type is used to represent a set of
alternate properties.
63Example 8
64The rdfSeq type (class)
- The rdfSeq type is used to represent a sequence
of properties.
65Example 9
66rdfli Property
- The property, rdfli ("list item"), is provided
by RDF for use with either rdfBag, rdfAlt, or
rdfSeq. - The rdfli property is provided for you to
specify an item in a Bag/Alt/Seq. - An RDF Parser will replace each rdfli with
rdf_1, rdf_2, rdf_3, etc. - The following slide recasts the previous examples
using the rdfli property.
67lt?xml version"1.0"?gt ltRetailer
rdfID"BarnesAndNoble"
xmlnsrdf"http//www.w3.org/1999/02/22-rdf-syntax
-ns" xmlns"http//www.retailers.
org"gt ltwebLocationgt ltrdfAltgt
ltrdfligthttp//www.bn.comlt/rdfligt
ltrdfligthttp//www.barnesandnoble.comlt/
rdfligt lt/rdfAltgt
lt/webLocationgt lt/Retailergt
lt?xml version"1.0"?gt ltMeeting rdfID"XML-Design-
Pattern" xmlnsrdf"http//www.w3.
org/1999/02/22-rdf-syntax-ns"
xmlns"http//www.business.org"gt
ltattendeesgt ltrdfBaggt
ltrdfligtJohn Smithlt/rdfligt
ltrdfligtSally Joneslt/rdfligt
lt/rdfBaggt lt/attendeesgt lt/Meetinggt
BarnesAndNoble.rdf
DesignMeeting.rdf
lt?xml version"1.0"?gt ltToDoList
rdfID"MondayMeetings"
xmlnsrdf"http//www.w3.org/1999/02/22-rdf-syntax
-ns" xmlns"http//www.reminde
rs.org"gt ltactivitiesgt ltrdfSeqgt
ltrdfligtMeet with CEO at
10amlt/rdfligt ltrdfligtLuncheon at
The Eaterylt/rdfligt ltrdfligtFlight
at 3pmlt/rdfligt lt/rdfSeqgt
lt/activitiesgt lt/ToDoListgt
MyDaysActivities.rdf
68Example 10
Modify the following XML document so that it is
also a valid RDF document
lt?xml version"1.0"?gt ltCatalogue
xmlns"http//www.publishing.org"
xmlnsdc"http//pur1.org/metadata/dublin-cor
e"gt ltBookgt
ltdcTitlegtLateral Thinkinglt/dcTitlegt
ltdcCreatorgtEdward de Bonolt/dcCreatorgt
ltdcDategt1973lt/dcDategt
ltISBNgt0-06-099325-2lt/ISBNgt
ltdcPublishergtHarper amp Rowlt/dcPublishergt
lt/Bookgt ltBookgt
ltdcTitlegtIllusions The Adventures of a
Reluctant Messiahlt/dcTitlegt
ltdcCreatorgtRichard Bachlt/dcCreatorgt
ltdcDategt1977lt/dcDategt
ltISBNgt0-440-34319-4lt/ISBNgt
ltdcPublishergtDell Publishing Co.lt/dcPublishergt
lt/Bookgt ltBookgt
ltdcTitlegtThe First and Last Freedomlt/dcTitlegt
ltdcCreatorgtJ. Krishnamurtilt/dcCrea
torgt ltdcDategt1954lt/dcDategt
ltISBNgt0-06-064831-7lt/ISBNgt
ltdcPublishergtHarper amp Rowlt/dcPublishergt
lt/Bookgt lt/Cataloguegt
Note regrettably, the Dublin Core does not
conform to the RDF naming conventions.
Hence, you see properties with the first
letter capitalized.
Barnes_and_Noble _BookCatalogue.xml
69Things to note
1. The XML document uses two types (classes)
2. All type instances are anonymous.
Consequently, we cannot benefit from others,
and others cannot benefit from us. Where does
it make sense to give the instance an
identifier? - In general, the root element
should have an identifier. - There is lots of
information about each book instance.
Let's give each book instance an identifier (the
ISBN).
70Modification 1 Identifiers added
lt?xml version"1.0"?gt ltCatalogue
id"BookCatalogue"
xmlns"http//www.publishing.org"
xmlnsdc"http//pur1.org/metadata/dublin-cor
e"gt ltBook id"_0-06-099325-2"gt
ltdcTitlegtLateral Thinkinglt/dcTitlegt
ltdcCreatorgtEdward de Bonolt/dcCreatorgt
ltdcDategt1973lt/dcDategt
ltdcPublishergtHarper amp
Rowlt/dcPublishergt lt/Bookgt ltBook
id"_0-440-34319-4"gt
ltdcTitlegtIllusions The Adventures of a
Reluctant Messiahlt/dcTitlegt
ltdcCreatorgtRichard Bachlt/dcCreatorgt
ltdcDategt1977lt/dcDategt
ltdcPublishergtDell Publishing Co.lt/dcPublishergt
lt/Bookgt ltBook id"_0-06-064831-7"gt
ltdcTitlegtThe First and Last
Freedomlt/dcTitlegt ltdcCreatorgtJ.
Krishnamurtilt/dcCreatorgt
ltdcDategt1954lt/dcDategt
ltdcPublishergtHarper amp Rowlt/dcPublishergt
lt/Bookgt lt/Cataloguegt
Why was an underscore placed in front of
the ISBN? Answer The ID datatype does not allow
an identifier to begin with a digit. So, we
(arbitrarily) decided to use an underscore.
Barnes_and_Noble _BookCatalogue,v2.xml
Notice that the ISBN elements were deleted and
their values used as identifiers.
71Modification 2 Create a property for the Book
type
Barnes_and_Noble _BookCatalogue,v3.xml
72RDF Format!
lt?xml version"1.0"?gt ltCatalogue
rdfID"BookCatalogue"
xmlnsrdf"http//www.w3.org/1999/02/22-rdf-syntax
-ns" xmlns"http//www.publis
hing.org" xmlnsdc"http//pu
r1.org/metadata/dublin-core"
xmlbase"http//www.bn.com"gt ltitemgt
ltBook rdfID"_0-06-099325-2"
xmlbase"http//www.publishing.org/book"gt
ltdcTitlegtLateral Thinkinglt/dcTitlegt
ltdcCreatorgtEdward de
Bonolt/dcCreatorgt
ltdcDategt1973lt/dcDategt
ltdcPublishergtHarper amp Rowlt/dcPublishergt
lt/Bookgt lt/itemgt ltitemgt
ltBook rdfID"_0-440-34319-4"
xmlbase"http//www.publishing.org/book"gt
ltdcTitlegtIllusions The Adventures of
a Reluctant Messiahlt/dcTitlegt
ltdcCreatorgtRichard Bachlt/dcCreatorgt
ltdcDategt1977lt/dcDategt
ltdcPublishergtDell Publishing Co.lt/dcPublishergt
lt/Bookgt lt/itemgt
... lt/Cataloguegt
Barnes_and_Noble_BookCatalogue.rdf
73Dublin Core (dc)
- The Dublin Core is a standard set of properties
Note many people use these properties in their
HTML today. For example ltMETA
NAME"DC.Creator" CONTENT"John Smith"gt
74rdfparseType"Collection"
- This may be added as an attribute of a property
to indicate that the contents of the property is
a list of resources. - The following slide recasts the BookCatalogue
example to use this list type.
75lt?xml version"1.0"?gt ltCatalogue
rdfID"BookCatalogue"
xmlnsrdf"http//www.w3.org/1999/02/22-rdf-syntax
-ns" xmlns"http//www.publis
hing.org" xmlnsdc"http//pu
r1.org/metadata/dublin-core"
xmlbase"http//www.bn.com"gt ltbooks
rdfparseType"Collection"gt ltBook
rdfID"_0-06-099325-2"
xmlbase"http//www.publishing.org/book"gt
ltdcTitlegtLateral Thinkinglt/dcTitlegt
ltdcCreatorgtEdward de
Bonolt/dcCreatorgt
ltdcDategt1973lt/dcDategt
ltdcPublishergtHarper amp Rowlt/dcPublishergt
lt/Bookgt ltBook rdfID"_0-440-34319
-4" xmlbase"http//www.pub
lishing.org/book"gt
ltdcTitlegtIllusions The Adventures of a
Reluctant Messiahlt/dcTitlegt
ltdcCreatorgtRichard Bachlt/dcCreatorgt
ltdcDategt1977lt/dcDategt
ltdcPublishergtDell Publishing Co.lt/dcPublishergt
lt/Bookgt ...
lt/booksgt lt/Cataloguegt
Barnes_and_Noble_BookCatalogue.rdf
76Example 11
77rdfparseType"Literal"
- In all of the previous examples the data was
structured as resource/property/value triples. - Sometimes it doesn't make sense to do such
structuring - Example with mixed content
- In those cases we can simply indicate "hey, the
content of this property is okay. Treat it as a
literal XML string."
78Dangers of rdfparseType"Literal"
- The advantage of structuring your XML as
resource/property/value triples is enhanced
interoperability. - When you use rdfparseType"Literal" you lose the
ability for a tool to instantly take advantage of
the resource/property/value structure (since you
are, by definition, saying that the data doesn't
have this structure). - Lesson Learned use rdfparseType"Literal"
sparingly!
79Example 12
Modify the following XML document so that it is
also a valid RDF document
lt?xml version"1.0"?gt ltRiver id"Yangtze"
xmlns"http//www.geodesy.org/river"
length"6300 kilometers"
startingLocation"western China's Qinghai-Tibet
Plateau" endingLocation"East China
Sea"/gt
Note that attributes are being used, not
child elements!
XML
Yangtze.xml
lt?xml version"1.0"?gt ltRiver rdfID"Yangtze"
xmlnsrdf"http//www.w3.org/1999/02/22-rd
f-syntax-ns" xmlns"http//www.geodes
y.org/river" xmlnsr"http//www.geod
esy.org/river" rlength"6300
kilometers" rstartingLocation"wester
n China's Qinghai-Tibet Plateau"
rendingLocation"East China Sea"/gt
The RDF format allows you to use attributes
as well!
RDF
Yangtze.rdf
80Attributes
- Recall that at the very beginning of this
tutorial we said that a resource has properties
(attributes). Thus, a property can be
represented either as a child element, or as an
attribute. (Of course, a property can only be
represented as an attribute if it has a literal
value, not a structured value.)
81Equivalent!
lt?xml version"1.0"?gt ltRiver rdfID"Yangtze"
xmlnsrdf"http//www.w3.org/1999/02/22-rd
f-syntax-ns" xmlns"http//www.geodes
y.org/river"gt ltlengthgt6300
kilometerslt/lengthgt ltstartingLocationgtwestern
China's Qinghai-Tibet Plateault/startingLocationgt
ltendingLocationgtEast China
Sealt/endingLocationgt lt/Rivergt
lt?xml version"1.0"?gt ltRiver rdfID"Yangtze"
xmlnsrdf"http//www.w3.org/1999/02/22-rd
f-syntax-ns" xmlns"http//www.geodes
y.org/river" xmlnsr"http//www.geod
esy.org/river" rlength"6300
kilometers" rstartingLocation"wester
n China's Qinghai-Tibet Plateau"
rendingLocation"East China Sea"/gt
82Example 13
83lt?xml version"1.0"?gt ltResume rdfID"JSmith-2003"
xmlnsrdf"http//www.w3.org/1999
/02/22-rdf-syntax-ns"
xmlns"http//www.resume.org"
xmlbase"http//www.jsmith.com/resume"gt
ltaboutgt ltPerson xmlns"http//www.person.
org"gt ltnamegtJohn Smithlt/namegt
ltphonegt555-1212lt/phonegt
ltemailgtabc_at_def.comlt/emailgt lt/Persongt
lt/aboutgt ltexperience rdfparseType"Collectio
n"gt ltJobgt
ltstartDategt1995-01-01lt/startDategt
ltendDategt1999-01-01lt/endDategt
lttitlegtresearcherlt/titlegt
ltemployergt ltCompany
xmlns"http//www.company.org"gt
ltnamegtSome Corplt/namegt
lthomepagegthttp//www.company.orglt/homepagegt
lt/Companygt
lt/employergt ltdescriptiongtCool
stufflt/descriptiongt lt/Jobgt
lt/experiencegt
ltskills rdfparseType"Collection"gt
ltSkillgt ltnamegtOraclelt/namegt
ltyearsExperiencegt13lt/yearsExperien
cegt lt/Skillgt ltSkillgt
ltnamegtJavalt/namegt
ltyearsExperiencegt3 lt/yearsExperiencegt
lt/Skillgt lt/skillsgt lteducation
rdfparseType"Collection"gt ltDegree
xmlns"http//www.schools.com"gt
lttypegtBSlt/typegt
ltschoolgtRPIlt/schoolgt
ltgraduationYeargt1987lt/graduationYeargt
lt/Degreegt lt/educationgt lt/Resumegt
84Conclusion
- In this tutorial we demonstrated that, with
oftentimes slight modifications, "traditional
XML" documents can be made RDF-compliant. - We recommend using the RDF format for all your
XML documents. - We feel that the advantages accrued by formatting
your XML far outweigh any possible disadvantages
(having to structure your XML in a specific
format and having to learn a new vocabulary)
85Related Articles
"Make Your XML RDF-Friendly" by Bob DuCharme,
John Cowan
http//www.xml.com/pub/a/2002/10/30/rdf-friendly.h
tml