Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

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")

A note of formats

See the MIME Type Section in the eagle-i repo API guide for the different formats that are supported by the SPARQL endpoint (all our queries are SELECT, so probably the best is SPARQL Result Set, which is XML representing a table)

Configuration

Organization Identifier

...

There is an additional parameter forceXML, which returns a format that may be the most useful (it's the XML from which the HTML version is generated) - pure RDF/XML is horrible

Example:

No Format
GET [http://harvard.qa.eagle-i.net/i/0000012e-5480-32e6-55da-381e80000000?forceXML]

After getting the main resource, the embedded resources need to be processed. Assume main resource has uri http://harvard.eagle-i.net/123

This query will return embedded resources:

No Format
PREFIX eiapp: <[http<http://eagle-i.org/ont/app/1.0/]>
SELECT
?embeddedResourceUri
WHERE {
<http://harvard.eagle-i.net/123> ?anyProperty ?embeddedResourceUri .
?embeddedResourceUri a ?type .
?type eiapp:inClassGroup eiapp:ClassGroup_EmbeddedResourceType .
}

...

Do this for each indirect filter property, e.g. ep4 and ip4

No Format
PREFIX ei: <[http<http://purl.obolibrary.org/obo/]>
PREFIX rdfs: <[http<http://www.w3.org/2000/01/rdf-schema#]>schema#>

SELECT
?filterValueUri
?filterValueLabel

WHERE {
?resourceUri a <${baseType}> .
?resourceUri ei:ERO_0000070 <${organization}> .
?resource <${ep4}> ?embeddedResource .
?embeddedResource <${ip4}> ?filterValueUri .
?filterValueUri rdfs:label ?filterValueLabel .
}

...

First part is identical to unfiltered query (remember to remove unset config params, e.g. op1), then conditions are added as triple patterns;
Assume filterValueUrix is the filter value selected by the user, for each filter property, e.g. filterValueUri1 for fp1
NOTE if only one filter is selected, add only that triple pattern/triple pattern group.

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

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

WHERE {
?resourceUri a <${baseType}> .
?resourceUri ei:ERO_0000070 <${organization}> .
?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 .
}

?resourceUri <${fp1}> <${filterValueUri1}> .
?resourceUri <${fp2}> <${filterValueUri2}> .
?resourceUri <${fp3}> <${filterValueUri3}> .

?resourceUri <${ep4}> ?embeddedResource1 .
 ?embeddedResource1 <${ip4}> <${filterValueUri4}> .

?resourceUri <${ep5}> ?embeddedResource2 .
 ?embeddedResource2 <${ip5}> <${filterValueUri5}> .
}