Deprecated. This material represents early efforts and may be of interest to historians. It doe not describe current VIVO efforts.

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Next »

All of the public RDF in VIVO is available in response to Linked Open Data requests. VIVO responds to standard LOD requests, and also some request formats that are particular to VIVO.

Overview

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.

An example

The examples on this page are based on a fictitious individual named "Able Baker", with a URI of http://vivo.mydomain.edu/individual/n3639. 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

Available formats

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 formatURLAccept header
RDF/XML
http://vivo.mydomain.edu/individual/n3639
application/rdf+xml
N3
http://vivo.mydomain.edu/individual/n3639
text/n3
Turtle
http://vivo.mydomain.edu/individual/n3639
text/turtle
JSON-LD
http://vivo.mydomain.edu/individual/n3639
application/json

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 formatURL
RDF/XML
http://vivo.mydomain.edu/individual/n3639/n3639.rdf
N3
http://vivo.mydomain.edu/individual/n3639/n3639.n3
Turtle
http://vivo.mydomain.edu/individual/n3639/n3639.ttl
JSON-LD
http://vivo.mydomain.edu/individual/n3639/n3639.jsonld

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 formatURL
RDF/XML
http://vivo.mydomain.edu/individual/n3639?format=rdfxml
N3
http://vivo.mydomain.edu/individual/n3639?format=n3
Turtle
http://vivo.mydomain.edu/individual/n3639?format=ttl
JSON-LD
http://vivo.mydomain.edu/individual/n3639?format=jsonld

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

Let's say that we have a faculty member with just a few items on his profile page. It might look like this:

 

Here is the RDF for this person, produced by a request for http://vivo.mydomain.edu/individual/n3639. In this example, the RDF is expressed in N3 format.

@prefix foaf:    <http://xmlns.com/foaf/0.1/> .
@prefix vcard:   <http://www.w3.org/2006/vcard/ns#> .
@prefix obo:     <http://purl.obolibrary.org/obo/> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix vitro:   <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix vivo:    <http://vivoweb.org/ontology/core#> .

<http://vivo.mydomain.edu/individual/n3639>
      a       vivo:FacultyMember , 
              foaf:Person , 
              owl:Thing , 
              foaf:Agent , 
              obo:BFO_0000002 , 
              obo:BFO_0000001 , 
              obo:BFO_0000004 ;
      rdfs:label "Baker, Able "^^xsd:string ;
      obo:ARG_2000028 <http://vivo.mydomain.edu/individual/n3972> ;
      obo:RO_0000053 <http://vivo.mydomain.edu/individual/n475> , 
                     <http://vivo.mydomain.edu/individual/n7850> ;
      vitro:mostSpecificType
              vivo:FacultyMember ;
      vivo:freetextKeyword
              "Potrezebie, Chattanooga" ;
      vivo:hasCollaborator
              <http://vivo.mydomain.edu/individual/n7429> ;
      vivo:relatedBy <http://vivo.mydomain.edu/individual/n3401> , 
                     <http://vivo.mydomain.edu/individual/n5855> , 
                     <http://vivo.mydomain.edu/individual/n2421> ;
      vivo:researchOverview
              "Whatever strikes my fancy." ;
      vivo:scopusId "abaker" .

<http://vivo.mydomain.edu/individual/n3972>
      a       vcard:Kind , 
              obo:BFO_0000031 , 
              owl:Thing , 
              obo:ARG_2000379 , 
              obo:IAO_0000030 , 
              obo:BFO_0000002 , 
              obo:BFO_0000001 , 
              vcard:Individual ;
      obo:ARG_2000029 <http://vivo.mydomain.edu/individual/n3639> .

<http://vivo.mydomain.edu/individual/n475>
      a       owl:Thing , 
              obo:BFO_0000023 , 
              vivo:InvestigatorRole , 
              obo:BFO_0000002 , 
              obo:BFO_0000017 , 
              vivo:PrincipalInvestigatorRole , 
              obo:BFO_0000020 , 
              obo:BFO_0000001 , 
              vivo:ResearcherRole ;
      obo:RO_0000052 <http://vivo.mydomain.edu/individual/n3639> .

<http://vivo.mydomain.edu/individual/n7850>
      a       owl:Thing , 
              obo:BFO_0000023 , 
              obo:BFO_0000017 , 
              obo:BFO_0000002 , 
              obo:BFO_0000020 , 
              obo:BFO_0000001 , 
              vivo:LeaderRole ;
      rdfs:label "Lead Guitarist"^^xsd:string ;
      obo:RO_0000052 <http://vivo.mydomain.edu/individual/n3639> .

<http://vivo.mydomain.edu/individual/n7429>
      a       foaf:Person , 
              vivo:FacultyMember , 
              foaf:Agent , 
              owl:Thing , 
              obo:BFO_0000002 , 
              obo:BFO_0000001 , 
              obo:BFO_0000004 ;
      rdfs:label "Dog, Charlie" .

<http://vivo.mydomain.edu/individual/n3401>
      a       owl:Thing , 
              vivo:Relationship , 
              obo:BFO_0000002 , 
              obo:BFO_0000020 , 
              obo:BFO_0000001 , 
              vivo:Authorship ;
      vivo:relates <http://vivo.mydomain.edu/individual/n3639> .

<http://vivo.mydomain.edu/individual/n5855>
      a       vivo:FacultyPosition , 
              owl:Thing , 
              vivo:Relationship , 
              obo:BFO_0000002 , 
              obo:BFO_0000020 , 
              obo:BFO_0000001 , 
              vivo:Position ;
      rdfs:label "Functionary"^^xsd:string ;
      vivo:relates <http://vivo.mydomain.edu/individual/n3639> .

<http://vivo.mydomain.edu/individual/n2421>
      a       owl:Thing , 
              vivo:Relationship , 
              obo:BFO_0000002 , 
              obo:BFO_0000020 , 
              obo:BFO_0000001 , 
              vivo:Grant ;
      rdfs:label "Cosmogenic Lassitude in Phlegmatic Axolotls" ;
      vivo:relates <http://vivo.mydomain.edu/individual/n3639> .

obo:BFO_0000001 
      a       owl:Class ;
      rdfs:label "Entity" .

obo:BFO_0000002
      a       owl:Class ;
      rdfs:label "Continuant" .

obo:BFO_0000004
      a       owl:Class ;
      rdfs:label "Independent Continuant"@en-US .

vivo:FacultyMember
      a       owl:Class ;
      rdfs:label "Faculty Member"@en-US .

foaf:Person
      a       owl:Class ;
      rdfs:label "Person"@en-US .

foaf:Agent
      a       owl:Class ;
      rdfs:label "Agent"@en-US .

owl:Thing
      a       owl:Class .

<http://vivo.mydomain.edu/individual/n3639/n3639.n3>
      a       foaf:Document ;
      rdfs:label "RDF description of Baker, Able  - http://vivo.mydomain.edu/individual/n3639" ;
      <http://purl.org/dc/elements/1.1/date> "2014-03-10T11:08:39"^^xsd:dateTime ;
      <http://purl.org/dc/elements/1.1/publisher> <http://vivo.mydomain.edu> ;
      <http://purl.org/dc/elements/1.1/rights> <http://vivo.mydomain.edu/termsOfUse> .

The RDF information can be expressed graphically, like this:

Restricting properties

How to make them public or private, and how to obtain the private ones by logging in before requesting LOD.

Available formats

List the formats we provide, with references to definitions, especially for JSONLD

Request forms

A table of request URLs, accept headers, response formats and response mime types

Error handling

What do we do if the format is incorrect, if they ask for an unsupported mime type, if the individual doesn't exist?

  • No labels