[Xesam] Link-by-id documentation and ontology patching

Evgeny Egorochkin phreedom.stdin at gmail.com
Fri Jan 9 03:27:31 PST 2009


В сообщении от Thursday 08 January 2009 21:40:58 Mikkel Kamstrup Erlandsen 
написал(а):
> 2008/12/19 Mikkel Kamstrup Erlandsen <mikkel.kamstrup at gmail.com>
>
> > 2008/12/18 Mikkel Kamstrup Erlandsen <mikkel.kamstrup at gmail.com>
> >
> >> 2008/12/18 Mikkel Kamstrup Erlandsen <mikkel.kamstrup at gmail.com>
> >>
> >>> 2008/12/18 Mikkel Kamstrup Erlandsen <mikkel.kamstrup at gmail.com>
> >>>
> >>>> Hi all,
> >>>>
> >>>> I have started to write up some proper documentation for link-by-id as
> >>>> discussed on the hackfest (it will land in
> >>>> http://xesam.org/main/XesamOntologyAbout when ready). To this end I
> >>>> came upon some stuff that needed updating in the onto. Please see the
> >>>> attached patch.
> >>>>
> >>>> What the proposed patch does:
> >>>>
> >>>>  * Document xesam:id and xesam:related as mandatedd by link-by-id
> >>>>
> >>>>  * Make xesam:contactMedium a child of xesam:id. This has pretty big
> >>>> consequences - like postal addresses, email addresses and what not to
> >>>> suddenly become ids. Nonetheless I think it is the right choice
> >>>>
> >>>>  * Make xesam:url a child of xesam:id
> >>>>
> >>>> Comments?
> >>>
> >>> I have a comment for myself already :-)
> >>>
> >>> While it might appear neat to have xesam:postalAddress as ids it also
> >>> poses some problems. Namely that I also write in the patch that ids
> >>> should generally be prefixed with an URI scheme (like http://, file://
> >>> or isbn:// etc). I would rather not have to write my postal address in
> >>> an URI
> >>>
> >>> :-)
> >>>
> >>> Obviously this needs a bit of thought...
> >>
> >> And I also forgot the attachment. Great! Here it is...
> >
> > Here's an updated patch for the ontology. It does not declare postal
> > addresses as ids anymore, but it is a bit more invasive... Here's the
> > quick overview:
> >
> >  * Make emailAddress, phoneNumber, url, and contactURL children of
> > xesam:id
> >
> >  * Add URI scheme requirements to all children of xesam:id. This is
> > required to ensure global uniqueness. I just follow the IANA rules here
> > really...
> >
> >  * Document xesam:id and xesam:related as mandatedd by link-by-id
> >
> > And oh! While I have your attention could you also take a peek at the
> > "Ids and Object Relations"-section I added to:
> > http://xesam.org/main/XesamOntologyAbout, or if you want to see it in the
> > context of the whole onto: http://xesam.org/main/XesamOntology (takes
> > longer to load)
>
> Over two weeks without objections. I've pushed this to bzr trunk. I am
> currently working on regenerating the ontology wiki-pages. They will
> probably be up-to-scratch in a few days.
>
> When that is done 1.0 is ready.

I should have written this a bit earlier. 

http://xesam.org/main/Hackfest2008/Ontology mentions link-by-id refinement. It 
wasn't voted on or discussed widely though, so let's do it now...

The idea is to treat content authorship as a special case and 
refine "dangling" link representation:

1) xesam:creator chilren are allowed to only link to xesam:ContactMedium of 
xesam:Contact, which is consistent with the way it's usually done in RDF 
world.

2) Links by ID between documents are resolved directly to URI of the 
document(s) if it exists, or a dummy Document of appropriate type is created 
with ID assigned to it and xesam:Source set to xesam:Unavailable. 

Examples:
1)	BookA references ISBN:xxx and there's a BookB with ISBN:xxx ==>
		user:BookA		xesam:links		user:BookB
2)	BookA references ISBN:xxx and there's no document with ISBN:xxx ==>
		user:BookA			xesam:links		user:DummyBookB.
		user:DummyBookB	rdf:type		xesam:Document;
						rdf:type		xesam:Unavailable; # or maybe don't specify Source
						xesam:isbn		"xxx".
	if BookB with ISBN:xxx appears, (2) is replaced with (1)

pros:
* no need to turn all IDs into URIs
* direct links work much faster
* better handing of dangling links:
	- links to available and unavailable objects "look" the same to applications
	- dummy objects can have an appropriate type like Document or Media and be 
properly displayed
* documents can't be authored by audio files

cons:
* reason for linking isn't specified when both objects are available. This 
doesn't seem to matter to users for links by ISBN and such.
* if there are 2 documents with the same ISBN(eg PDF and ODF versions), a link 
by ISBN would target both of them. However, to properly link the second 
document, the reason for linking(ISBN reference) must still somehow be 
available
* xesam:creator sort of feels like a createdBy relation

Ideas?

--Evgeny


More information about the Xesam mailing list