Versions Compared

Key

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

...

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.

RDF/XML
Response formatURLAccept headerResponse formatResponse MIME type
http://vivo.mydomain.edu/individual/n3639
application/rdf+xmlRDF/XMLapplication/rdf+xmlN3
http://vivo.mydomain.edu/individual/n3639
text/n3N3Turtletext/n3
http://vivo.mydomain.edu/individual/n3639
text/turtleTurtletext/turtleJSON-LD
http://vivo.mydomain.edu/individual/n3639
application/jsonJSON-LDapplication/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:

RDF/XML
URLResponse formatURLResponse MIME type
http://vivo.mydomain.edu/individual/n3639/n3639.rdf
RDF/XMLapplication/rdf+xml
http:/
N3
http://vivo.mydomain.edu/individual/n3639/n3639.n3
N3Turtletext/n3
http://vivo.mydomain.edu/individual/n3639/n3639.ttl
Turtletext/turtleJSON-LD
http://vivo.mydomain.edu/individual/n3639/n3639.jsonld
JSON-LDapplication/json

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.

RDF/XML
URLResponse formatURLResponse MIME type
http://vivo.mydomain.edu/individual/n3639?format=rdfxml
RDF/XMLapplication/rdf+xmlN3
http://vivo.mydomain.edu/individual/n3639?format=n3
N3Turtletext/n3
http://vivo.mydomain.edu/individual/n3639?format=ttl
Turtletext/turtleJSON-LD
http://vivo.mydomain.edu/individual/n3639?format=jsonld
JSON-LDapplication/json

What is included in the response?

...

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 for the example, in N3 format.

Code Block
@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

Note

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

Available formats

Note

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

Request forms

Note

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

Error handling

...

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:

Image Added

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:

Image Added

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.

Image Added

Set the Publish level as you like, and submit the changes.

Image AddedImage Added

Image Added

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

Code Block
<http://vivoweb.org/ontology/core#eRACommonsId>
      <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#hiddenFromPublishBelowRoleLevelAnnot>
              <http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> .

Note, however, that the standard VIVO distribution includes this triple in the display model:

Code Block
<http://vivoweb.org/ontology/core#:eRACommonsId>
      <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#:hiddenFromPublishBelowRoleLevelAnnot>
              <http://vitro.mannlib.cornell.edu/ns/vitro/role#public> .

You would need to remove this triple in order for the more restrictive triple to take effect.

Error handling

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 200 OK.