Re: Understanding RDF

>> You represent you by giving yourself a URI
> Which URI?

Any URI, but preferably a short, simple, persistent one. Mine, for 
example, is http://me.aaronsw.com/

>> and then saying stuff about it
>>
>>   p:Hixie rdf:type foaf:Person .
>>   p:Hixie foaf:homepage <http://index.hixie.ch/> .
>>   p:Hixie dc:title "Ian Hickson" .
> So URIs all represent further resources, some of which can also be 
> used to
> describe relationships?

Yep, almost everything is a resource (identified by a URI) and all 
resources can be described (with more triples). Some of those URIs 
(called properties) can go in the predicate field and identify 
relationships.

> If you go deep enough, can you end up with statements in the form:
>    a:foo a:foo a:foo .

I guess that would occasionally make sense, like:

x:anagram x:anagram x:anagram .

("anagram" is an anagram of "anagram"... ignore the fact that they 
should be literals instead of URIs)

> I guess I'm trying to work out how much knowledge you have to give an
> RDF system, and how much it can work out for itself.

I'll explain these in the (as-yet-unwritten) closures section. Thanks 
for the nudge.

> If there are just three types in RDF, namely resources with URIs,
> resources without URIs, and strings, then how do you say things about
> strings? How do you distinguish between a string and a resource's URI 
> in
> the XML serialisation?

You say things about strings just like anything else:

"foo" x:anagram "oof" .

in most serializations, strings can only be objects, though.

>> "about" (which really should be rdf:about) is pointing to the URI of
>> the subject. I don't see resource here but similarly it points to the
>> object.
> Wow, that seems excessively verbose.

It usually is. Hey, it's XML, what did you expect?

> So to say "data:,1" "http://example.net/isa" 
> "http://example.net/number" I
> would say what?
>
>    <rdf:Description
>      rdf:about="data:,1"
>      rdf:resource="http://example.net/number"/>

<data:,1> <http://example.net/isa> <http://example.net/number> .
<data:,1> <http://example.net/string> "1" .

becomes

<rdf:Description rdf:about="data:,1">
     <example:isa rdf:resource="http://example.net/number" />
     <example:string>1</example:string>
</rdf:Dexcription>

(This will go in the syntax section.)

>> The date is in standard W3CDTF format[1].
> So there is no RDF-based way of reifying a date? For example, if I have
> two statements in the form:
>
>    foo:a bar:born "1970-01-01T00:00:01Z" .
>    foo:b bar:born "1970-01-01T00:00:02Z" .
>
> ...can my generic RDF engine derive:
>
>    foo:a bar:born-before foo:b .
>
> ...? (Does this even make sense?)

No, a generic RDF engine can't. If had a special one with support for 
dates (I think TimBL's CWM has this) then it might be able to.

> Is there anything to prevent:
>    a:foo rdfs:subPropertyOf a:bar .
>    a:bar rdfs:subPropertyOf a:foo .
> ...?

No, I think that means they're equivalent.

>> What do you want to tell?
> Well, if I tell my RDF engine to give me all things that are a:foos, 
> will
> it also get things that are subclasses of a:foos?

If it supports RDF Schema, then yes. (This will be in the closures 
section too.)

> Ok, so if it is a data handling format, how is it better than 
> specialised
> MySQL databases?

MySQL is a database. It stores things on disk and gives them back in 
response. It's easy to represent MySQL database schemas as RDF. (A 
table "people" with columns "name" and "dob" would become a class 
"Person" with Properties "name" and "dob"; the primary key would become 
the subject URI.) Then you can put your database on the Web and share 
it with other databases or non-database programs (like a GUI or XUL 
application) or combine it with another database to draw further 
conclusions (Amacrook: "people who bought this product also got 
arrested for ..."), etc.

> Thanks, by the way, this is really helping with my understanding.

Glad to help! Hopefully I'll be able to fix up the primer so it 
explains this stuff better.
-- 
Aaron Swartz [http://www.aaronsw.com]

Received on Tuesday, 26 November 2002 15:11:23 UTC