Versions Compared

Key

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

...

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}> .
}