practical rdf ch.4 specialized rdf relationships: reification, containers, and collections kim,...
TRANSCRIPT
Practical RDF Ch.4Specialized RDF Relationships: Reification, Containers, and Collections
Kim, Jong-NamSNU OOPSLA Lab.
August 12, 2004
2
Contents
Containers Collections Reification
3
Containers
We need to describe groups of things A book created by several authors A list of students in a course
RDF’s container vocabulary consists of bags, sequences, and alternative and some associated properties
4
Bag (rdf:Bag)
A Bag is a resource having type rdf:Bag A Bag is a unordered group of resources
or literals, possibly including duplicate members
For example a Bag might model a group of part numbers
used in assembling a motor There might be duplicates (same part types
used many times) and order doesn’t matter
5
Sequence (rdf:Seq)
A Sequence is a resource having type rdf:Seq
A Sequence is a group of resources or literals, possibly including duplicate members, where the order of the members is significant
For example A Sequence might be used to describe a group
that must be maintained in alphabetical order
6
Alternative (rdf:Alt)
An Alternative is a resource having type rdf:Alt
An Alternative is a group of resources or literals that are alternatives (typically for a single value of a property)
For example An Alt might be used to describe a list of
alternative internet sites at which a resource might be found
Listing of expressions written in different languages
7
Using Containers
Give the resource an rdf:type property with value rdf:Bag, rdf:Seq, or rdf:Alt
The container resource (which may either be a blank node or a resource with a URIref) denotes the group as a whole
The members of the container use a container membership with names of the form rdf:_n, where n > 0 e.g., rdf:_1, rdf:_2, rdf:_3
8
A Bag Example
Let’s represent the sentence: "Course 6.001 has the students Amy, Mohamed, Johann, Maria, and Phuong."
9
RDF/XML Syntax for this Graph
10
Some Abbreviations
RDF/XML provides li as a convenience to avoid having to number each membership property The numbered properties rdf:_1, rdf:_2, etc. are generated
from the li elements in forming the corresponding graph
The use of a <rdf:Bag> element within the <s:students> property element. The <rdf:Bag> element is abbreviation that lets us replace
both an rdf:Description element and an rdf:type element with a single element
The Bag is a blank node. It’s nesting within the <s:students>
property element is an abbreviated way of indicating that it is the value of this property
11
Sequences and Graph Structure
The graph structure for an rdf:Seq container, and the corresponding RDF/XML, are similar to those for an rdf:Bag.
The only difference is in the type, rdf:Seq Remember, although an rdf:Seq container is
intended to describe a sequence, it is up to applications creating and processing the graph to appropriately interpret the sequence of integer-valued property names
12
Alternative and Graph Structure
The graph structure for an rdf:Alt container, and the corresponding RDF/XML, are similar to those for an rdf:Bag.
An Alt container has at least one member, rdf:_1, which is the default value.
Other than rdf:_1, the order of the remaining elements is not significant.
13
Contents
Containers Collections Reification
14
Collections
With containers there is no way to say that these are all the members of the container
The graph has no way to exclude the possibility that there is another graph somewhere that describes additional members
RDF collections can describe "closed" groups An RDF collection is a LISP-like list of type
rdf:List, with predefined properties rdf:first and rdf:rest, and the predefined resource rdf:nil
15
A Collection Example
Consider the sentence "The students in course 6.001 are Amy, Mohamed, and Johann":
16
RDF/XML for the Collections of Students
Notice abbreviations
17
Contents
Containers Collections Reification
18
Reification – Making Statements about Statements
Suppose we have the triple: exproducts:item10245 exterms:weight
"2.4"^^xsd:decimal.
Now suppose we want to model that John Smith made this statement.
We want something like: [exproducts:item10245 exterms:weight
"2.4"^^xsd:decimal .] dc:creator exstaff:85740 .
That is, to turn the original statement into a resource, i.e., reify it, so it can be a Subject
19
RDF Reification Vocabulary
RDF supplies: a type: rdf:Statement, and properties: rdf:subject, rdf:predicate, rdf:object
So, a reification of our original triple: exproducts:item10245 exterms:weight "2.4“.
is given by the triples: exproducts:triple12345 rdf:type rdf:Statement . exproducts:triple12345 rdf:subject
exproducts:item10245 . exproducts:triple12345 rdf:predicate exterms:weight . exproducts:triple12345 rdf:object "2.4"^^xsd:decimal .
and we can add: exproducts:triple12345 dc:creator exstaff:85740 .
to represent that 85740 made the statement
20
Be Careful !!
The above means that triple12345 refers to is a particular instance of a triple in a particular RDF document, rather than some arbitrary triple having the same subject, predicate, and object
Suppose Jane Doe “also” said that item10245 weighed 2.4
How would you model it? With the same statement, triple12345 , or
with another statement, say triple7890, that has the same subject, predicate, and object?
21
The Reified Statement is not the Same as the Statement
When someone asserts that John said foo, they are not asserting foo themselves, just that John said it.
Conversely, when someone asserts foo, they are not also asserting its reification
RDF can't "connect" an triple to its reification triple12345 has NO graph connection to the
original triple: exproducts:item10245 exterms:weight "2.4" .
And adding: triple12345 dc:creator exstaff:85740 . does not allow you to say that John created the original triple
22
Be Careful (cont.)
We could attribute the statement to John simply by the statement: ex:triple12345 dc:creator exstaff:85740 .
Now, if Jane were exstaff:900 and you asserted: ex:triple12345 dc:creator exstaff:900 .
You would be saying that John and Jane made the SAME statement. Is that likely? For AI’ers to argue