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

Compare with Current View Page History

« Previous Version 3 Next »

Vocabulary

Resource = a record of a "thing" in eagle-i. A resource is an instance of a class defined in the eagle-i ontology (e.g. "My nifty DNA Microarray" is an instance of the class "DNA MicroArray", which is a subclass of "Instrument")

Configuration

# General
# What general type of resources we are dealing with

baseType=http://purl.obolibrary.org/obo/ERO_0000071

# What organization are the resources "attached" to (all resources in eagle-i need to belong to an organization)

virtualOrganization=http://harvard.eagle-i.net/i/xyz

# What properties to show in the overview record
# Literal properties (i.e. properties whose value is a simple string)

lp1=http://purl.obolibrary.org/obo/ERO_0000480
# Object properties (i.e. properties whose value is a link to another resource or ontology term)

op1=http://purl.obolibrary.org/obo/ERO_0001719
op2=http://purl.obolibrary.org/obo/ERO_0000078

More advanced version with open-ended lists, potentially using yaml (but need to get the syntax right (wink)

# What properties to show in the overview record
# Literal properties (i.e. properties whose value is a simple string)
literalProperties:
   propertyUri: http://purl.obolibrary.org/obo/ERO_0000480

# Object properties (i.e. properties whose value is a link to another resource or ontology term)
objectProperties:
  propertyUri: http://purl.obolibrary.org/obo/ERO_0001719
  propertyUri: http://purl.obolibrary.org/obo/ERO_0000078

# What properties to show on the left nav
# What properties to filter on
# => TBD with Richard

Queries

Query for base, unfiltered dataset:

Find all instances of baseType affiliated with virtualOrganization, returns a table with a column per query variable defined in property configuration above
Option 1 one query

PREFIX ei: <http://purl.obolibrary.org/obo/>
PREFIX eiapp: <http://eagle-i.org/ont/app/1.0/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT
?resourceUri
?resourceLabel
?resourceDescription
?lp1Label
?lp1Value
?op1Label
?op1ValueLabel
?op1ValueUri
?op2Label
?op2ValueLabel
?op2ValueUri

 WHERE {
     ?resourceUri a <${baseType}> .
     ?resourceUri ei:ERO_0000070 <${virtualOrganization}> .
     ?resourceUri rdfs:label ?resourceLabel .
     OPTIONAL {
          ?resourceUri eiapp:resource_description ?resourceDescription .
          ?resourceUri <${lp1}> ?lp1Value . <${lp1}> eiapp:preferredLabel ?lp1Label .
          ?resourceUri <${op1}> ?op1ValueUri . ?op1ValueUri rdfs:label ?op1ValueLabel . <${op1}> eiapp:preferredLabel ?op1Label .
          ?resourceUri <${op2}> ?op2ValueUri . ?op2ValueUri rdfs:label ?op2ValueLabel . <${op2}> eiapp:preferredLabel ?op2Label .
     }
}

Option 2 split in two queries (one for Ontology labels, one for instances) = > this may be preferable
Note that if desired props don't have preferred label we'll need to alter query 1

Query 1 => to be executed only once (labels don't change)

PREFIX eiapp: <http://eagle-i.org/ont/app/1.0/>
SELECT

?lp1Label
?op1Label
?op2Label

 WHERE {
     OPTIONAL {
          <${lp1}> eiapp:preferredLabel ?lp1Label .
          <${op1}> eiapp:preferredLabel ?op1Label .
          <${op2}> eiapp:preferredLabel ?op2Label .
     }
}

Query 2

PREFIX ei: <http://purl.obolibrary.org/obo/>
PREFIX eiapp: <http://eagle-i.org/ont/app/1.0/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT
?resourceUri
?resourceLabel
?resourceDescription
?lp1Value
?op1ValueLabel
?op1ValueUri
?op2ValueLabel
?op2ValueUri

 WHERE {
     ?resourceUri a <${baseType}> .
     ?resourceUri ei:ERO_0000070 <${virtualOrganization}> .
     ?resourceUri rdfs:label ?resourceLabel .
     OPTIONAL {
          ?resourceUri eiapp:resource_description ?resourceDescription .
          ?resourceUri <${lp1}> ?lp1Value .
          ?resourceUri <${op1}> ?op1ValueUri . ?op1ValueUri rdfs:label ?op1ValueLabel .
          ?resourceUri <${op2}> ?op2ValueUri . ?op2ValueUri rdfs:label ?op2ValueLabel .
     }
}

Example with substituted values (option 1)

PREFIX ei: <http://purl.obolibrary.org/obo/>
PREFIX eiapp: <http://eagle-i.org/ont/app/1.0/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT
?resourceUri
?resourceLabel
?resourceDescription
?lp1Label
?lp1Value
?op1Label
?op1ValueLabel
?op1ValueUri
?op2Label
?op2ValueLabel
?op2ValueUri

 WHERE {
     ?resourceUri a <http://purl.obolibrary.org/obo/ERO_0000071> .
     ?resourceUri rdfs:label ?resourceLabel .
     OPTIONAL {
          ?resourceUri eiapp:resource_description ?resourceDescription .
          ?resourceUri <http://purl.obolibrary.org/obo/ERO_0000480> ?lp1Value . <http://purl.obolibrary.org/obo/ERO_0000480> eiapp:preferredLabel ?lp1Label .
          ?resourceUri <http://purl.obolibrary.org/obo/ERO_0001719> ?op1ValueUri . ?op1ValueUri rdfs:label ?op1ValueLabel . <http://purl.obolibrary.org/obo/ERO_0001719> eiapp:preferredLabel ?op1Label .
          ?resourceUri <http://purl.obolibrary.org/obo/ERO_0000078> ?op2ValueUri . ?op2ValueUri rdfs:label ?op2ValueLabel . <http://purl.obolibrary.org/obo/ERO_0000078> eiapp:preferredLabel ?op2Label .
     }
}
  • No labels