- From: Leo Sauermann <leo@gnowsis.com>
- Date: Wed, 8 Oct 2003 18:31:15 +0200
- To: "'DuCharme, Bob (LNG-CHO)'" <bob.ducharme@lexisnexis.com>, <www-rdf-interest@w3.org>
Hiu,
first:
RDF is a graph and you can express easier in the graph than in the
RDF/XML syntax.
You have been barking at the wrong tree insofar as "Items" can be
"containers".
" ... that can each contain items and/or other containers ..."
Simple put:
- Containers contain resources.
- a resource can be anything
- a container is a resource.
You would usually use containers or collections to express such lists:
http://www.w3.org/TR/rdf-primer/#collections
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:s="http://example.org/students/vocab#">
<rdf:Description rdf:about="http://example.org/courses/6.001">
<s:students rdf:parseType="Collection">
<rdf:Description
rdf:about="http://example.org/students/Amy"/>
<rdf:Description
rdf:about="http://example.org/students/Mohamed"/>
<rdf:Description
rdf:about="http://example.org/students/Johann"/>
</s:students>
</rdf:Description>
</rdf:RDF>
http://www.w3.org/TR/rdf-primer/#containers
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:s="http://example.org/students/vocab#">
<rdf:Description rdf:about="http://example.org/courses/6.001">
<s:students>
<rdf:Bag>
<rdf:li rdf:resource="http://example.org/students/Amy"/>
<rdf:li rdf:resource="http://example.org/students/Mohamed"/>
<rdf:li rdf:resource="http://example.org/students/Johann"/>
<rdf:li rdf:resource="http://example.org/students/Maria"/>
<rdf:li rdf:resource="http://example.org/students/Phuong"/>
</rdf:Bag>
</s:students>
</rdf:Description>
</rdf:RDF>
have a look at this for a list without collecitons:
<rdf:Description rdf:about="http://yourname/id1">
<container rdf:Resource="http://yourname/id2" />
</rdf:Description>
<rdf:Description rdf:about="http://yourname/id2">
<hasItem><Item rdf:about="http://yourname/id32" /></hasItem>
<hasItem><Item rdf:about="http://yourname/id42" /></hasItem>
<hasItem><Item rdf:about="http://yourname/id62" /></hasItem>
<hasItem><Item rdf:about="http://yourname/id52" /></hasItem>
</rdf:Description>
I ususally represent File structures this way
(this is an answer to the www.gnowsis.com query
SELECT ?x, ?y WHERE (<file://leo.gnowsis.com/media/MP3/songs/> ?x ?y)
(?y ?p1 ?p2)
)
<rdf:RDF
xmlns:j.0="http://www.gnowsis.org/ont/filesys/0.1#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:j.1="http://www.gnowsis.org/ont/data/0.1#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" >
<rdf:Description rdf:about="file://leo.gnowsis.com/media/MP3/songs/">
<rdf:type
rdf:resource="http://www.gnowsis.org/ont/filesys/0.1#Folder"/>
<j.0:contains
rdf:resource="file://leo.gnowsis.com/media/MP3/songs/U2%20-%20one.mp3"/>
<j.0:contains
rdf:resource="file://leo.gnowsis.com/media/MP3/songs/U2one.mp3"/>
</rdf:Description>
<rdf:Description
rdf:about="http://www.gnowsis.org/ont/filesys/0.1#Folder">
<rdf:type
rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
<j.1:definedByAdapter>true</j.1:definedByAdapter>
<rdfs:subClassOf
rdf:resource="http://www.gnowsis.org/ont/filesys/0.1#FileSystemEntry"/>
<rdfs:label xml:lang="en">Folder</rdfs:label>
</rdf:Description>
<rdf:Description
rdf:about="file://leo.gnowsis.com/media/MP3/songs/U2%20-%20one.mp3">
<j.0:bytesize
rdf:datatype="http://www.w3.org/2001/XMLSchema#long">4418792</j.0:bytesi
ze>
<rdf:type
rdf:resource="http://www.gnowsis.org/ont/filesys/0.1#File"/>
<j.0:extension>.mp3</j.0:extension>
<rdfs:label>U2 - one.mp3</rdfs:label>
<j.0:filename>U2 - one.mp3</j.0:filename>
</rdf:Description>
<rdf:Description
rdf:about="file://leo.gnowsis.com/media/MP3/songs/U2one.mp3">
<j.0:bytesize
rdf:datatype="http://www.w3.org/2001/XMLSchema#long">4418792</j.0:bytesi
ze>
<rdf:type
rdf:resource="http://www.gnowsis.org/ont/filesys/0.1#File"/>
<j.0:extension>.mp3</j.0:extension>
<rdfs:label>U2one.mp3</rdfs:label>
<j.0:filename>U2one.mp3</j.0:filename>
</rdf:Description>
</rdf:RDF>
hth
Leo Sauermann
www.gnowsis.com
> -----Original Message-----
> From: www-rdf-interest-request@w3.org
> [mailto:www-rdf-interest-request@w3.org] On Behalf Of
> DuCharme, Bob (LNG-CHO)
> Sent: Wednesday, October 08, 2003 4:28 PM
> To: 'www-rdf-interest@w3.org'
> Subject: modeling nested containers with items
>
>
>
> I'm having a hard time figuring out an RDF way to model
> containers that can
> each contain items and/or other containers. A filesystem
> directory/file
> structure and a bookmark folder/bookmark structure are good examples.
> Assuming that each container and each item can have properties (e.g.
> "created" in the example below), how could I represent the
> following in RDF?
> My attempts at using RDF containers have been bumping into
> those striping
> issues. Or is even attempting to use RDF here a case of
> barking up the wrong
> tree?
>
>
> <container id="i1" created="20031001">
> <item id="i2" created="20031001"/>
> <item id="i3" created="20031003"/>
> <container id="i4" created="20031002">
> <item id="i5" created="20031002"/>
> <item id="i6" created="20031003"/>
> <item id="i7" created="20031001"/>
> <container id="i8" created="20031003">
> <item id="i9" created="20031004"/>
> </container>
> <container id="i10" 20031004"/>
> </container>
> </container>
>
> thanks,
>
> Bob
>
Received on Wednesday, 8 October 2003 12:30:53 UTC