Hi Xiaoshu,

On Feb 5, 2007, at 10:08 AM, Xiaoshu Wang wrote:
Alan
Please review slides 31-34 in [1] for a precise example of the technique I am referring to. There is a link to working code that implements the example within lsw [2]
O.K. Let us work on the provided example. Assume that you found a VitaminSourceDemoThing that might interest me. How are you going to tell me, say something like: "Hey, Xiaoshu, check this out - http:// www.example.org/NM_013987_XML". What am I supposed to do next?

I (or my software) would send you a small package of triples. Effectively:

1. The location of the ontology that includes VitaminSourceDemoThing
2. The resource of interest: http://www.example.org/NM_013987_XML

You would know (because we have agreed on the outline of how we resolve URIs) to follow the steps in slide 34 (repeated here)

Call (get-information-resource-location !<http://www.example.org/ NM_013987_XML> )
Which does the following
1. Get the getMethod of NM_013987_XML
=> !vitaminSourceDemoMethod (inherited)
2. Get the direct type of the method. It is !SPARQLRetrieval
3. Dispatch to code based on type
4. Code retrieves queryPattern => “PREFIX biozen:….%%URI%%…”
5. Code retrieves URIVariableString => “%%URI%%”
6. Code replaces %%URI%% with NM_013987_XML uri
7. Code retrieves useSPARQLEndpoint (2 of them)
8. Constructs http gets, e.g.
http://neuroscientific.net/vitamin-source/endpointone/
endpoint.php?query=PREFIX%20biozen:%20%3Chttp://neuroscientific.net/ biozen.
owl%23%3E%20SELECT%20?url%20WHERE%20%7B%3Chttp://www.example.
org/NM_013987_XML%3E%20biozen:download%20?url%20.%20%7D"
http://tinyurl.com/u6ztt
9. Query returns =>
http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi? db=nucleotide&id=7669537&rettype=xml

Now you have the actual location of the resource. You can get the actual data by doing a geturl.

I was wrong using the carrot example. But what I was trying to say is that the semantics of owl:hasValue restriction should have nothing to do with the URI's composition. Take the example provided, that all vs:vitaminSourceDemoThing's vs:getMethod must has value of a "vs:vitaminSourceDemoMethod". Now, if I make the following assertion that

http://foo.com/foo a vs:vitaminSourceDemoThing ;
                                  vs:getMethod http://bar.com/#bar .

An RDF engine should infer that

"http://bar.com/#bar"; owl:sameAs vs:vitaminSourceDemoMethod

Your inference is correct. However this is not an intended use. The hasValue was used in step 1, where the getMethod is inherited by NM_013987_XML from vitaminSourceDemoThing.

But it does not mean that the engine should dereference dereference the URI of vs:vitaminSourceDemoMethod instead of http://bar.com/ #bar, am I right? Because there might be some other interesting knowledge at "http://bar.com/#bar"; that is not available at vs:vitaminSourceDemoMethod.

Hopefully above explains what is going on. This example doesn't really make sense.

If using an ontology to decide what to dereference, an engine must have parse the resource twice. First, using the ontology to decide how to get a "complete" information set. Second, to infer it to the knowledge set and do some useful thing. The semantics are different. If you mixed them up together in the same system, you throw yourself in an endless loop. For instance, I am curious, how should I dereference the vs:vitaminSourceDemoMethod, how do I decide the vs:getMethod of this URI? Don't you see where it is going?

I am not assuming you are retrieving each uri one by one. Chunks of things come in files. The ontology as a whole is in one file. You are correct that one always has a bootstrap issue. However I anticipate that the core of the URI resolution ontology, given its importance, would be available and most likely cached, and that this ontology would have enough defined to declare alternate methods of getting itself in the future.

-Alan

Reply via email to