RE: RDF Miniserializations [from rdfweb-dev]

> [Some out of date notes that I was preparing. I've actually gone a lot
> further than this and implemented a schema-aware RDF editor, which I'm
> just about to post about to rdfweb-dev. Figured that I'd send the
> history to www-archive just for a laugh.]

[Great stuff. I'll comment here, then when you open the magix box we can
compare.]

> One of the proposals for Notation3, and something that I used in N3S,
> is the following syntax:
>
>    @use Person, name, nick, knows
>       <http://xmlns.com/foaf/0.1/>  .
>
> Which is very similar to Python import syntax!
>
>    from http://xmlns.com/foaf/0.1/ import
>       Person, name, nick, knows.
>
> Of course.

Looks good. I take it there's a good reason not to just use the Python
syntax..?

> > (at command line)
> > Person->
> > name-> Dan Brickley
> > nick-> danbri
> > knows->
> > Person->
> > name-> Libby Miller
> > nick-> libby
>
> I realise that this was just a very quick sketch of what you'd like to
> be able to achieve, but it has an interesting mix of nice features and
> practical problems that I'd like to investigate. The obvious thing
> missing is typing--I suppose everything's typed as a URI if it's
> recognized from the config file, though, and typed as a literal
> otherwise.

Yep, that was what I had in mind, though I hadn't really thought it through
very much (yes I did, yes I did!). Looking back on this I think literal
"quotes" probably would be a good idea anyway, make it clearer.

> It appears that the "->" things are actually redundant. But this
> current syntax assumes striping. It shows you how to descend into new
> objects, but not get out of them ("<-", perhaps?).

Yep, it is redundant, but it's easier to see what's going on as you type, or
e.g. if you saved it in a file as a macro. It's really a cut down version of
what I tend to use because I can't remember n3 :

subject -predicate-> object

I'd pondered striping a bit, and had thought that a blank line could
represent dropping back to 'root' (i.e. new statement). I also considered
various nasty variations on ditto marks ", but it got very insecty.

Just try adding
> another property to the danbri Person root node...
>
>    nick-> libby
>    <-
>    email danbri@example.org

That ain't bad at all, you know...

> And what happens if you want to use classes as subjects/objects in the
> graph itself, rather than to type? For example, if I wanted to type
> :Person rdf:type rdfs:Class. Would I have to put the statement on a
> single line to denote that? In other words:
>
>    Person->
>    type-> Class
>
> becomes
>
>    [ a :Person; rdf:type rdfs:Class ] .
>
> but
>
>    Person type-> Class
>
> becomes
>
>    :Person rdf:type rdfs:Class .
>
> It gets quite confusing quite quickly, but I like the principle of
> easy RDF creation.

Heh, yes and yes.

> What I'd like to be able to do is load the names in from schemata
> automatically. Seems like that's why we have a Semantic Web in the
> first place... to put machine readable data up on the Web. You could
> specify a list of cascading preferred schemata, so that if there are
> duplicate terms in different ones the one with the higher preference
> wins. But this may have the "import * from x" problem.

Yep. I like that a lot.
An alternative to clash handling might be to force 'standard' prefixes -
dc:title, foaf:title etc.

Cheers,
Danny.

Received on Wednesday, 15 October 2003 14:30:27 UTC