This documentation relates to an old version of VIVO, version 1.10.x. Looking for another version? See all documentation.
Linked Open Data is one of the fundamental concepts of the Semantic Web. It consists of asking a server for the RDF relating to an individual. If the response includes object properties that link to other individuals, those individuals can be queried also. For more information on Linked Open Data, see Concept: Linked Data.
VIVO accepts standard requests for Linked Open Data and some non-standard ones. The contents of the response are in accordance with those suggested by the in their tutorial How to Publish Linked Data on the Web.
VIVO will provide Linked Open Data in several formats. The semantic content remains the same; only the syntax differs among formats.
The examples on this page are based on a fictitious individual named "Able Baker", with a URI of
. To keep the examples simple, this person has just a few items in his VIVO profile. His profile page looks like this:
Requesting Linked Open Data from VIVO
VIVO will serve Linked Open Data in these formats:
Specifications for each of the formats are provided by the World Wide Web Consortium (W3C).
Types of requests
The standard way of requesting Linked Open data is an HTTP request to the URI of the individual in question, with the
Accept header on the request indicating the desired format. If there is no
Accept header, it is assumed to be
text/html, and the standard profile page is returned.
|Response MIME type
The different responses may also be explicitly requested by URL. In fact, the requests listed above will simply redirect the browser to these URLs:
|Response MIME type
Finally, VIVO allows you to request Linked Open Data in a way that is not specified by the standard. You can make an HTTP GET request to the URI of the individual, and include a
format parameter that specifies the format of the response.
|Response MIME type
What is included in the response?
When you get request the public RDF about an individual in VIVO, the result is a set of RDF statements, or triples. These triples state:
- The data properties of the individual.
- The object properties that relate this individual to other individuals.
- The object properties of other individuals that relate to this individual
- The labels and types of these related individuals.
- Some triples that describe the RDF document itself.
This statement over-simplifies slightly. In VIVO, object properties and data properties can be public, or restricted to some extent. The RDF for an individual will contain only public properties.
An example response
Here is the RDF produced for the example, in N3 format.
A graphic summary
The RDF can be expressed graphically like this:
Editing the property
You can exclude a property from Linked Open Data, or include it, by editing the property within VIVO. Perhaps the easiest way to edit a property is to log in as a VIVO administrator, navigate to an individual's profile page, and turn on the verbose display:
Once the verbose display is turned on, scroll through the profile page to find the property you are interested in. You can see what it's current restriction levels are for display, update, and publishing. You also have a link to the control panel for that property:
Note that all Linked Open Data requests are treated as public, so any setting other than
all users, including public will exclude the property.
Navigate to the control panel for the property, and then to the editing form for the property.
Publish level as you like, and submit the changes.
Setting triples in the display model
Properties in VIVO can be restricted from Linked Open Data, by attaching the
vitro:hiddenFromPublishBelowRoleLevelAnnot annotation to the property.
For example, this triple in VIVO's display model would mean that the
eRACommonsId property would not be published in Linked Open Data
Note, however, that the standard VIVO distribution includes this triple in the display model:
You would need to remove this triple in order for the more restrictive triple to take effect.
An exception to the restrictions
VIVO uses the same permissions model to restrict Linked Open Data that it uses to restrict displays or updates. So if you are logged in to VIVO as the root user, and you request Linked Open Data, no restrictions would be applied.
This is consistent with VIVO's authorization model.
An external application could take advantage of this fact to obtain full RDF about individuals. Since there is no authorization parameter on the Linked Open Data request, the client application would need to begin by logging in to VIVO as an administrator, and then retain the session cookie to submit with subsequent requests.
If you ask for Linked Open Data for a non-existent individual, regardless of the form you use, VIVO will return a response code of
404 not found.
If you ask for an unsupported format, either in the
Accept header or the
format parameter, VIVO will treat your request as a request for HTML, and will return the standard profile page for the individual. The response code will be