Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

I have a question about the vivo:linkURI property of a vivo:URLLink class. The vivo:linkURI property is a datatype property. However, its value is a URI, right? So, why isn't it an object property? A related a related question is how do you store the value of the vivo:linkURI property in a VIVO instance if that value is a URI in that same instance of VIVO? Is it a literal or an entity?

Some

...

context first

xsd:anyURI datatype

(from http://www.schemacentral.com/sc/xsd/t-xsd_anyURI.html):

...

A bibo:Webpage is a subclass of bibo:Document, which is declared equivalent to a foaf:Document.  The VIVO ontology includes the bibo:Webpage class to be able to represent authorship of a web page by a person or organization. A web page is part of a bibo:Website, a subclass of bibo:Collection.

comment: "A web page is an online document available (at least initially) on the world wide web. A web page is written first and foremost to appear on the web, as distinct from other online resources such as books, manuscripts or audio documents which use the web primarily as a distribution mechanism alongside other more traditional methods such as print."

usage: bibo:Website  dcterms:hasPart only bibo:Webpage

 

vivo:webpage and vivo:webpageOf object properties

...

The vivo:webpage property relates to an intermediate node (of type vivo:URLLink) that allows specifying the homepage URL as a literal (via the vivo:linkURI data property), as well as a human-readable label ("anchor text") for the link (vivo:linkAnchorText).

In the ISF the vivo:webpage property and vivo:webpageOf properties are deprecated in favor of isf:has_url_link and isf:url_link_for object properties.

vivo:URLLink class

The definition of a vivo:URLLink is listed as, "The Uniform Resource Locator (URL) specifies where an identifier resource is available and the mechanism for retrieving it." An example is given as http://info.slis.indiana.edu/~katy/A vivo:URLLink is a subclass of an IAO 'information content entity', which is replacing vivo:InformationResource as we transition to the Integrated Semantic Framework, or ISF.

A vivo:URLLink has a data property vivo:linkURI (sub property of vivo:hasValue) for storing the URL, which expects a datatype xsd:anyURI as its value. The VIVO 1.5 ontology vivo:linkAnchorText data property appears to be deprecated in favor of rdfs:label with the transition to the ISF.

Getting back to the questions

The value of link:URI is a URI, right? So, why isn't it an object property?

The vivo:URLLink class with its vivo:linkURI value of an xsd:anyURI was set up to be able to be able to capture the URL as a string literal in the VIVO editor and to associate a label with a URI so that two different entities in VIVO could reference the same URI and use different labels. Both of these reasons have more to do with the VIVO application than the ontology.

At root the question should be why we need the vivo:URLLink class at all – can't we just enter the URI of the remote resource as the object of the has_url_link property?  If a label is found for the URI in the VIVO triple store, the URI could be rendered on the page with anchor text, or otherwise as an unadorned URL.

We support the URLLink in the application not only to be able to capture the anchor text but a rank value that is used to order a person or organization's web pages.  URLLink presently has one subclass – a Faculty of 1000 link -- and there have been requests to be able to differentiate full text links as well.

We also have a need for the application to treat the URI of a resource in VIVO differently from a resource known to be native to another application (so far another VIVO, but it could be Profiles or anything else). The VIVO application can be configured to treat certain namespaces as external namespaces to redirect to rather than render locally. This configuration was developed to allow storing the URIs, rdf:type statements, and rdfs:labels of Weill Cornell Medical College people and organizations in the Cornell Ithaca VIVO instance while ensuring that these URIs were redirected to the Weill Cornell VIVO for rendering, since the Weill Cornell VIVO has much more complete information about that URI.

We can't possibly know all the namespaces of URIs that will be referenced in a VIVO instance, so if we wanted to just redirect to an arbitrary URI the VIVO application would have to instead keep track of all the namespaces that it should try to render locally.  This would include all the namespaces of ontologies included in VIVO as well as any namespaces beyond the default namespace established in configuring a VIVO instance – more tractable than the impossible task of recognizing a namespace as external, but not something we've attempted to date.

It might also be possible for the application to redirect to the object of the isf:has_url_link property rather than ever trying to render that URI – this would require adding a parameter to the URL on a VIVO page to tell VIVO that if the user clicks

Would this even have the desired effect?