3.4 Representing Structured Data with rdf:value
Not all data relations in RDF
represent straight binary connections between resource and object
value. Some data values, such as measurement, have both a value and
additional information that determines how you treat that value. In
the following RDF/XML:
<pstcn:lastEdited>18</pstcn:lastEdited>
the statement is ambiguous because we don't know
exactly what 18 means. Is it 18 days? Months?
Hours? Did a person identified by the number 18 edit it?
To represent more structured data, you can include the additional
information directly in the value:
<pstcn:lastEdited>18 days</pstcn:lastEdit>
However, this type of intelligent data then requires that systems
know enough to split the value from its qualifier, and this goes
beyond what should be required of RDF parsers and processors.
Instead, you could define a second vocabulary element to capture the
qualifier, such as:
<pstcn:lastEdited>18</pstcn:lastEdited>
<pstcn:lastEditedUnit>day</pstcn:lastEditedUnit>
This works, but unfortunately, there is a disconnect between the
value and the unit because the two are only indirectly related based
on their relationship with the resource. So the syntax is then
refined, which is where rdf:value enters the
picture. When dealing with structured data, the
rdf:value predicate includes the actual value of
the structure—it provides a signal to the processor that the
data itself is included in this field, and all other members of the
structure are qualifiers and additional information about the
structure.
Redefining the data would then result in:
<pstcn:lastEdited rdf:parseType="Resource">
<rdf:value>18</rdf:value>
<pstcn:lastEditedUnit>day</pstcn:lastEditedUnit>
</pstcn:lastEdited>
Now, not only do we know that we're dealing with
structured data, we know what the actual value, the kernel of the
data so to speak, is by the use of rdf:value. You
could use your own predicate, but rdf:value is
global in scope—it crosses all RDF vocabularies—making
its use much more attractive if you're concerned
about combining your vocabulary data with other data.
|