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
Code Block |
---|
|
# 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)](/wiki/s/bsuouk/9012/1phy4ty/_/images/icons/emoticons/wink.svg)
Code Block |
---|
|
# 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
Code Block |
---|
|
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
...
Code Block |
---|
|
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 .
}
}
|
...
Code Block |
---|
|
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)
Code Block |
---|
|
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 .
}
}
|