You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Stephan Zednik <ze...@rpi.edu> on 2012/02/02 18:14:28 UTC

including ARQ list:member matches in a DESCRIBE query

Hi all,

I am trying to utilize the <http://jena.hpl.hp.com/ARQ/list:member> query extension while querying an in-memory jena model.  My rdf:List is showing up in the results of my DESCRIBE query, but the list member descriptions are not appearing in the query result as per the DESCRIBE arguments (not sure the term here).

The list member instances do exist in the in-memory model, and show results if I run a DESCRIBE query directly against their URI.

Any idea why ?variable and ?operation matching instances are not being described in my query?

--Stephan

I am using jena-arq 2.9.0-incubating pulled from the apache jena maven repository

  <dependency>
  	<groupId>org.apache.jena</groupId>
  	<artifactId>jena-arq</artifactId>
  	<version>2.9.0-incubating</version>
  </dependency>

CODE TO EXECUTE QUERY:

public Model execDescribe(String sparql, QuerySolutionMap map) {
	Query query = QueryFactory.create(sparql);
	QueryExecution qe = QueryExecutionFactory.create(query, model, map);		
	try {
		return qe.execDescribe();
	} finally {
		qe.close();
	}
}

QUERY:

PREFIX mdsa: <http://escience.rpi.edu/ontology/mdsa/mdsa.owl#> 
PREFIX list: <http://www.jena.hpl.hp.com/ARQ/list#> 
PREFIX dcterms: <http://purl.org/dc/terms/> 
DESCRIBE ?obj ?service ?operation ?variable 
WHERE { ?obj a ?type . ?obj dcterms:identifier ?id . 
	?obj mdsa:aboutAnalysisSettings ?settings . 
	OPTIONAL{ ?settings mdsa:selectedService ?service . 
		OPTIONAL { ?service mdsa:operations [ list:member ?operation ] } 
	} 
	OPTIONAL{ ?settings mdsa:selectedVariables [ list:member ?variable ] } 
}

RESULTS (in TTL):

@prefix :        <http://escience.rpi.edu/ontology/mdsa/mdsa-data#> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix mdsa-dq:  <http://escience.rpi.edu/ontology/mdsa/mdsa-dq#> .
@prefix mdsa:    <http://escience.rpi.edu/ontology/mdsa/mdsa.owl#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix list:    <http://www.jena.hpl.hp.com/ARQ/list#> .
@prefix dcterms:  <http://purl.org/dc/terms/> .

<urn:nasa:gsfc:giovanni3:service:latlonplot>
      a       owl:Thing , rdfs:Resource , mdsa:Service ;
      rdfs:comment """To generate a time-averaged area plot, the data values for each grid cell in the user-specified area are averaged over the user-specified time range. The average value of the data parameter for each grid cell is plotted and displayed. Averaging in this case is a linear operation.

Parameter weighting or pixel weighting may be used to produce the plot.  Parameter weighting is currently only used for the Aerosol Small Mode Fraction data parameter.  If parameter weighting is employed, the averaging is nonlinear.

Operation steps performed to generate this visualization:

1. [Data Fetching] ... 2. [Grid Subset]... 3. [Time Avg] ... 4. [2-D Map Plot]"""^^xsd:string ;
      rdfs:label "Lat-Lon map, Time-Averaged"^^xsd:string ;
      mdsa:operations
              [ a       rdf:List , rdfs:Resource ;
                rdf:first <urn:nasa:gsfc:giovanni3:operation:G3_DataFetching> ;
                rdf:rest
                        [ a       rdf:List , rdfs:Resource ;
                          rdf:first <urn:nasa:gsfc:giovanni3:operation:G3_GridSubset> ;
                          rdf:rest
                                  [ a       rdf:List , rdfs:Resource ;
                                    rdf:first <urn:nasa:gsfc:giovanni3:operation:G3_TimeAvg> ;
                                    rdf:rest
                                            [ a       rdf:List , rdfs:Resource ;
                                              rdf:first <urn:nasa:gsfc:giovanni3:operation:G3_Map2Plot> ;
                                              rdf:rest ()
                                            ]
                                  ]
                        ]
              ] .

_:b1  a       owl:Restriction , rdfs:Resource , rdfs:Class ;
      rdfs:subClassOf _:b1 , rdfs:Resource ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty mdsa:selectedService .

_:b2  a       owl:Restriction , rdfs:Resource , rdfs:Class ;
      rdfs:subClassOf rdfs:Resource , _:b2 ;
      owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty mdsa:startDateTime .

_:b3  a       owl:Restriction , rdfs:Resource , rdfs:Class ;
      rdfs:subClassOf _:b3 , rdfs:Resource ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty mdsa:selectedVariables .

[]    a       owl:Thing , mdsa:Report , rdfs:Resource , mdsa:SimilarityReport ;
      mdsa:aboutAnalysisSettings
              [ a       _:b3 , owl:Thing , mdsa:AnalysisSettings , _:b1 , rdfs:Resource , _:b4 , _:b5 ;
                mdsa:selectedService
                        <urn:nasa:gsfc:giovanni3:service:latlonplot> ;
                mdsa:selectedSpatialExtent
                        [ a       mdsa:GeoBoundingBox , owl:Thing , rdfs:Resource , mdsa:SpatialExtent ;
                          mdsa:east 180.0 ;
                          mdsa:north 90.0 ;
                          mdsa:south 20.0 ;
                          mdsa:west 0.0
                        ] ;
                mdsa:selectedTemporalExtent
                        [ a       _:b6 , owl:Thing , mdsa:TemporalExtent , rdfs:Resource , mdsa:TimePeriod , _:b2 ;
                          mdsa:endDateTime "2008-01-31T00:00:00Z"^^xsd:dateTime ;
                          mdsa:startDateTime "2008-01-01T00:00:00Z"^^xsd:dateTime
                        ] ;
                mdsa:selectedVariables
                        [ a       rdf:List , rdfs:Resource ;
                          rdf:first <urn:nasa:eosdis:variable:MYD08_D3.051:Optical_Depth_Land_And_Ocean_Mean> ;
                          rdf:rest
                                  [ a       rdf:List , rdfs:Resource ;
                                    rdf:first <urn:nasa:eosdis:variable:MOD08_D3.051:Optical_Depth_Land_And_Ocean_Mean> ;
                                    rdf:rest ()
                                  ]
                        ] ;
                dcterms:identifier "getReportTestID"^^xsd:string
              ] ;
      mdsa:hasCaveat
              [ a       mdsa:DifferentDatasetCaveat , owl:Thing , rdfs:Resource , mdsa:Caveat , mdsa:SimilarityCaveat , _:b7 ;
                rdfs:comment "datasets different" ;
                mdsa:subject <urn:nasa:eosdis:dataset:MOD08_D3.051> , <urn:nasa:eosdis:dataset:MYD08_D3.051>
              ] ;
      mdsa:hasCaveat
              [ a       mdsa:DifferentSatelliteDayTimeNodesCaveat , owl:Thing , rdfs:Resource , mdsa:Caveat , mdsa:SimilarityCaveat , _:b7 ;
                rdfs:comment "satellite daytime nodes different" ;
                mdsa:subject <urn:nasa:satellite:deployment:aqua> , <urn:nasa:satellite:deployment:terra>
              ] ;
      mdsa:hasCaveat
              [ a       owl:Thing , mdsa:DifferentSatelliteNominalEquatorialCrossingTimesCaveat , rdfs:Resource , mdsa:Caveat , mdsa:SimilarityCaveat , _:b7 ;
                rdfs:comment "nominal equatorial crossing times different" ;
                mdsa:subject <urn:nasa:satellite:deployment:aqua> , <urn:nasa:satellite:deployment:terra>
              ] ;
      dcterms:identifier "getReportTestID"^^xsd:string .

_:b6  a       owl:Restriction , rdfs:Resource , rdfs:Class ;
      rdfs:subClassOf _:b6 , rdfs:Resource ;
      owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty mdsa:endDateTime .

_:b4  a       owl:Restriction , rdfs:Resource , rdfs:Class ;
      rdfs:subClassOf rdfs:Resource , _:b4 ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty mdsa:selectedTemporalExtent .

_:b7  a       owl:Restriction , rdfs:Resource , rdfs:Class ;
      rdfs:subClassOf rdfs:Resource , _:b7 ;
      owl:minCardinality "2"^^xsd:nonNegativeInteger ;
      owl:onProperty mdsa:subject .

_:b5  a       owl:Restriction , rdfs:Resource , rdfs:Class ;
      rdfs:subClassOf rdfs:Resource , _:b5 ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty mdsa:selectedSpatialExtent .

RESULTS OF DESCRIBE on <urn:nasa:gsfc:giovanni3:operation:G3_DataFetching>:

@prefix :        <http://escience.rpi.edu/ontology/mdsa/mdsa-data#> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix mdsa-dq:  <http://escience.rpi.edu/ontology/mdsa/mdsa-dq#> .
@prefix mdsa:    <http://escience.rpi.edu/ontology/mdsa/mdsa.owl#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix dcterms:  <http://purl.org/dc/terms/> .

<urn:nasa:gsfc:giovanni3:operation:G3_DataFetching>
      a       mdsa:Operation , owl:Thing , rdfs:Resource ;
      rdfs:comment "Data retrieval — also called data fetching— acquires data from the data source (archive or database) and makes it available to Giovanni-3 for visualization and analysis."^^xsd:string ;
      rdfs:label "Data Fetching"^^xsd:string ;
      rdfs:seeAlso <http://disc.sci.gsfc.nasa.gov/giovanni/additional/users-manual/G3_operation_data_fetching.shtml> .


Re: including ARQ list:member matches in a DESCRIBE query

Posted by Stephan Zednik <ze...@rpi.edu>.
Hi all,

I figured out my problem.  :-)  I was using an incorrect URI for the ARQ list namespace in my query; I mistakenly put the 'www' into the URI when it does not belong.

I corrected the namespace and now my query is executing correctly.

--Stephan

On Feb 2, 2012, at 12:14 PM, Stephan Zednik wrote:

> Hi all,
> 
> I am trying to utilize the <http://jena.hpl.hp.com/ARQ/list:member> query extension while querying an in-memory jena model.  My rdf:List is showing up in the results of my DESCRIBE query, but the list member descriptions are not appearing in the query result as per the DESCRIBE arguments (not sure the term here).
> 
> The list member instances do exist in the in-memory model, and show results if I run a DESCRIBE query directly against their URI.
> 
> Any idea why ?variable and ?operation matching instances are not being described in my query?
> 
> --Stephan
> 
> I am using jena-arq 2.9.0-incubating pulled from the apache jena maven repository
> 
>  <dependency>
>  	<groupId>org.apache.jena</groupId>
>  	<artifactId>jena-arq</artifactId>
>  	<version>2.9.0-incubating</version>
>  </dependency>
> 
> CODE TO EXECUTE QUERY:
> 
> public Model execDescribe(String sparql, QuerySolutionMap map) {
> 	Query query = QueryFactory.create(sparql);
> 	QueryExecution qe = QueryExecutionFactory.create(query, model, map);		
> 	try {
> 		return qe.execDescribe();
> 	} finally {
> 		qe.close();
> 	}
> }
> 
> QUERY:
> 
> PREFIX mdsa: <http://escience.rpi.edu/ontology/mdsa/mdsa.owl#> 
> PREFIX list: <http://www.jena.hpl.hp.com/ARQ/list#> 
> PREFIX dcterms: <http://purl.org/dc/terms/> 
> DESCRIBE ?obj ?service ?operation ?variable 
> WHERE { ?obj a ?type . ?obj dcterms:identifier ?id . 
> 	?obj mdsa:aboutAnalysisSettings ?settings . 
> 	OPTIONAL{ ?settings mdsa:selectedService ?service . 
> 		OPTIONAL { ?service mdsa:operations [ list:member ?operation ] } 
> 	} 
> 	OPTIONAL{ ?settings mdsa:selectedVariables [ list:member ?variable ] } 
> }
> 
> RESULTS (in TTL):
> 
> @prefix :        <http://escience.rpi.edu/ontology/mdsa/mdsa-data#> .
> @prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
> @prefix mdsa-dq:  <http://escience.rpi.edu/ontology/mdsa/mdsa-dq#> .
> @prefix mdsa:    <http://escience.rpi.edu/ontology/mdsa/mdsa.owl#> .
> @prefix owl:     <http://www.w3.org/2002/07/owl#> .
> @prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
> @prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
> @prefix list:    <http://www.jena.hpl.hp.com/ARQ/list#> .
> @prefix dcterms:  <http://purl.org/dc/terms/> .
> 
> <urn:nasa:gsfc:giovanni3:service:latlonplot>
>      a       owl:Thing , rdfs:Resource , mdsa:Service ;
>      rdfs:comment """To generate a time-averaged area plot, the data values for each grid cell in the user-specified area are averaged over the user-specified time range. The average value of the data parameter for each grid cell is plotted and displayed. Averaging in this case is a linear operation.
> 
> Parameter weighting or pixel weighting may be used to produce the plot.  Parameter weighting is currently only used for the Aerosol Small Mode Fraction data parameter.  If parameter weighting is employed, the averaging is nonlinear.
> 
> Operation steps performed to generate this visualization:
> 
> 1. [Data Fetching] ... 2. [Grid Subset]... 3. [Time Avg] ... 4. [2-D Map Plot]"""^^xsd:string ;
>      rdfs:label "Lat-Lon map, Time-Averaged"^^xsd:string ;
>      mdsa:operations
>              [ a       rdf:List , rdfs:Resource ;
>                rdf:first <urn:nasa:gsfc:giovanni3:operation:G3_DataFetching> ;
>                rdf:rest
>                        [ a       rdf:List , rdfs:Resource ;
>                          rdf:first <urn:nasa:gsfc:giovanni3:operation:G3_GridSubset> ;
>                          rdf:rest
>                                  [ a       rdf:List , rdfs:Resource ;
>                                    rdf:first <urn:nasa:gsfc:giovanni3:operation:G3_TimeAvg> ;
>                                    rdf:rest
>                                            [ a       rdf:List , rdfs:Resource ;
>                                              rdf:first <urn:nasa:gsfc:giovanni3:operation:G3_Map2Plot> ;
>                                              rdf:rest ()
>                                            ]
>                                  ]
>                        ]
>              ] .
> 
> _:b1  a       owl:Restriction , rdfs:Resource , rdfs:Class ;
>      rdfs:subClassOf _:b1 , rdfs:Resource ;
>      owl:cardinality "1"^^xsd:nonNegativeInteger ;
>      owl:onProperty mdsa:selectedService .
> 
> _:b2  a       owl:Restriction , rdfs:Resource , rdfs:Class ;
>      rdfs:subClassOf rdfs:Resource , _:b2 ;
>      owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
>      owl:onProperty mdsa:startDateTime .
> 
> _:b3  a       owl:Restriction , rdfs:Resource , rdfs:Class ;
>      rdfs:subClassOf _:b3 , rdfs:Resource ;
>      owl:cardinality "1"^^xsd:nonNegativeInteger ;
>      owl:onProperty mdsa:selectedVariables .
> 
> []    a       owl:Thing , mdsa:Report , rdfs:Resource , mdsa:SimilarityReport ;
>      mdsa:aboutAnalysisSettings
>              [ a       _:b3 , owl:Thing , mdsa:AnalysisSettings , _:b1 , rdfs:Resource , _:b4 , _:b5 ;
>                mdsa:selectedService
>                        <urn:nasa:gsfc:giovanni3:service:latlonplot> ;
>                mdsa:selectedSpatialExtent
>                        [ a       mdsa:GeoBoundingBox , owl:Thing , rdfs:Resource , mdsa:SpatialExtent ;
>                          mdsa:east 180.0 ;
>                          mdsa:north 90.0 ;
>                          mdsa:south 20.0 ;
>                          mdsa:west 0.0
>                        ] ;
>                mdsa:selectedTemporalExtent
>                        [ a       _:b6 , owl:Thing , mdsa:TemporalExtent , rdfs:Resource , mdsa:TimePeriod , _:b2 ;
>                          mdsa:endDateTime "2008-01-31T00:00:00Z"^^xsd:dateTime ;
>                          mdsa:startDateTime "2008-01-01T00:00:00Z"^^xsd:dateTime
>                        ] ;
>                mdsa:selectedVariables
>                        [ a       rdf:List , rdfs:Resource ;
>                          rdf:first <urn:nasa:eosdis:variable:MYD08_D3.051:Optical_Depth_Land_And_Ocean_Mean> ;
>                          rdf:rest
>                                  [ a       rdf:List , rdfs:Resource ;
>                                    rdf:first <urn:nasa:eosdis:variable:MOD08_D3.051:Optical_Depth_Land_And_Ocean_Mean> ;
>                                    rdf:rest ()
>                                  ]
>                        ] ;
>                dcterms:identifier "getReportTestID"^^xsd:string
>              ] ;
>      mdsa:hasCaveat
>              [ a       mdsa:DifferentDatasetCaveat , owl:Thing , rdfs:Resource , mdsa:Caveat , mdsa:SimilarityCaveat , _:b7 ;
>                rdfs:comment "datasets different" ;
>                mdsa:subject <urn:nasa:eosdis:dataset:MOD08_D3.051> , <urn:nasa:eosdis:dataset:MYD08_D3.051>
>              ] ;
>      mdsa:hasCaveat
>              [ a       mdsa:DifferentSatelliteDayTimeNodesCaveat , owl:Thing , rdfs:Resource , mdsa:Caveat , mdsa:SimilarityCaveat , _:b7 ;
>                rdfs:comment "satellite daytime nodes different" ;
>                mdsa:subject <urn:nasa:satellite:deployment:aqua> , <urn:nasa:satellite:deployment:terra>
>              ] ;
>      mdsa:hasCaveat
>              [ a       owl:Thing , mdsa:DifferentSatelliteNominalEquatorialCrossingTimesCaveat , rdfs:Resource , mdsa:Caveat , mdsa:SimilarityCaveat , _:b7 ;
>                rdfs:comment "nominal equatorial crossing times different" ;
>                mdsa:subject <urn:nasa:satellite:deployment:aqua> , <urn:nasa:satellite:deployment:terra>
>              ] ;
>      dcterms:identifier "getReportTestID"^^xsd:string .
> 
> _:b6  a       owl:Restriction , rdfs:Resource , rdfs:Class ;
>      rdfs:subClassOf _:b6 , rdfs:Resource ;
>      owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
>      owl:onProperty mdsa:endDateTime .
> 
> _:b4  a       owl:Restriction , rdfs:Resource , rdfs:Class ;
>      rdfs:subClassOf rdfs:Resource , _:b4 ;
>      owl:cardinality "1"^^xsd:nonNegativeInteger ;
>      owl:onProperty mdsa:selectedTemporalExtent .
> 
> _:b7  a       owl:Restriction , rdfs:Resource , rdfs:Class ;
>      rdfs:subClassOf rdfs:Resource , _:b7 ;
>      owl:minCardinality "2"^^xsd:nonNegativeInteger ;
>      owl:onProperty mdsa:subject .
> 
> _:b5  a       owl:Restriction , rdfs:Resource , rdfs:Class ;
>      rdfs:subClassOf rdfs:Resource , _:b5 ;
>      owl:cardinality "1"^^xsd:nonNegativeInteger ;
>      owl:onProperty mdsa:selectedSpatialExtent .
> 
> RESULTS OF DESCRIBE on <urn:nasa:gsfc:giovanni3:operation:G3_DataFetching>:
> 
> @prefix :        <http://escience.rpi.edu/ontology/mdsa/mdsa-data#> .
> @prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
> @prefix mdsa-dq:  <http://escience.rpi.edu/ontology/mdsa/mdsa-dq#> .
> @prefix mdsa:    <http://escience.rpi.edu/ontology/mdsa/mdsa.owl#> .
> @prefix owl:     <http://www.w3.org/2002/07/owl#> .
> @prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
> @prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
> @prefix dcterms:  <http://purl.org/dc/terms/> .
> 
> <urn:nasa:gsfc:giovanni3:operation:G3_DataFetching>
>      a       mdsa:Operation , owl:Thing , rdfs:Resource ;
>      rdfs:comment "Data retrieval — also called data fetching— acquires data from the data source (archive or database) and makes it available to Giovanni-3 for visualization and analysis."^^xsd:string ;
>      rdfs:label "Data Fetching"^^xsd:string ;
>      rdfs:seeAlso <http://disc.sci.gsfc.nasa.gov/giovanni/additional/users-manual/G3_operation_data_fetching.shtml> .
> 


Re: including ARQ list:member matches in a DESCRIBE query

Posted by Andy Seaborne <an...@apache.org>.
Hi there,

You've shown the results and what you expect but not the data being 
queried.  At first glance, it coudk be the optional isn't matching in 
some way then

Could you provide a complete, minimal example?

Something that easier to work with would be good - there's stuff like 
the huge literal that is obscuring being able to underatdn your setup.

Which does
   SELECT  ?obj ?service ?operation ?variable
return?

 From what I can see <urn:nasa:gsfc:giovanni3:operation:G3_DataFetching> 
only occurs in the because the bnode closure of 
<urn:nasa:gsfc:giovanni3:service:latlonplot> pulls it in, not that the 
query is being asked to DESCRIBE it.

	Andy

On 02/02/12 17:14, Stephan Zednik wrote:
> Hi all,
>
> I am trying to utilize the<http://jena.hpl.hp.com/ARQ/list:member>  query extension while querying an in-memory jena model.  My rdf:List is showing up in the results of my DESCRIBE query, but the list member descriptions are not appearing in the query result as per the DESCRIBE arguments (not sure the term here).
>
> The list member instances do exist in the in-memory model, and show results if I run a DESCRIBE query directly against their URI.
>
> Any idea why ?variable and ?operation matching instances are not being described in my query?
>
> --Stephan
>
> I am using jena-arq 2.9.0-incubating pulled from the apache jena maven repository
>
>    <dependency>
>    	<groupId>org.apache.jena</groupId>
>    	<artifactId>jena-arq</artifactId>
>    	<version>2.9.0-incubating</version>
>    </dependency>
>
> CODE TO EXECUTE QUERY:
>
> public Model execDescribe(String sparql, QuerySolutionMap map) {
> 	Query query = QueryFactory.create(sparql);
> 	QueryExecution qe = QueryExecutionFactory.create(query, model, map);		
> 	try {
> 		return qe.execDescribe();
> 	} finally {
> 		qe.close();
> 	}
> }
>
> QUERY:
>
> PREFIX mdsa:<http://escience.rpi.edu/ontology/mdsa/mdsa.owl#>
> PREFIX list:<http://www.jena.hpl.hp.com/ARQ/list#>
> PREFIX dcterms:<http://purl.org/dc/terms/>
> DESCRIBE ?obj ?service ?operation ?variable
> WHERE { ?obj a ?type . ?obj dcterms:identifier ?id .
> 	?obj mdsa:aboutAnalysisSettings ?settings .
> 	OPTIONAL{ ?settings mdsa:selectedService ?service .
> 		OPTIONAL { ?service mdsa:operations [ list:member ?operation ] }
> 	}
> 	OPTIONAL{ ?settings mdsa:selectedVariables [ list:member ?variable ] }
> }
>
> RESULTS (in TTL):
>
> @prefix :<http://escience.rpi.edu/ontology/mdsa/mdsa-data#>  .
> @prefix rdfs:<http://www.w3.org/2000/01/rdf-schema#>  .
> @prefix mdsa-dq:<http://escience.rpi.edu/ontology/mdsa/mdsa-dq#>  .
> @prefix mdsa:<http://escience.rpi.edu/ontology/mdsa/mdsa.owl#>  .
> @prefix owl:<http://www.w3.org/2002/07/owl#>  .
> @prefix xsd:<http://www.w3.org/2001/XMLSchema#>  .
> @prefix rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>  .
> @prefix list:<http://www.jena.hpl.hp.com/ARQ/list#>  .
> @prefix dcterms:<http://purl.org/dc/terms/>  .
>
> <urn:nasa:gsfc:giovanni3:service:latlonplot>
>        a       owl:Thing , rdfs:Resource , mdsa:Service ;
>        rdfs:comment """To generate a time-averaged area plot, the data values for each grid cell in the user-specified area are averaged over the user-specified time range. The average value of the data parameter for each grid cell is plotted and displayed. Averaging in this case is a linear operation.
>
> Parameter weighting or pixel weighting may be used to produce the plot.  Parameter weighting is currently only used for the Aerosol Small Mode Fraction data parameter.  If parameter weighting is employed, the averaging is nonlinear.
>
> Operation steps performed to generate this visualization:
>
> 1. [Data Fetching] ... 2. [Grid Subset]... 3. [Time Avg] ... 4. [2-D Map Plot]"""^^xsd:string ;
>        rdfs:label "Lat-Lon map, Time-Averaged"^^xsd:string ;
>        mdsa:operations
>                [ a       rdf:List , rdfs:Resource ;
>                  rdf:first<urn:nasa:gsfc:giovanni3:operation:G3_DataFetching>  ;
>                  rdf:rest
>                          [ a       rdf:List , rdfs:Resource ;
>                            rdf:first<urn:nasa:gsfc:giovanni3:operation:G3_GridSubset>  ;
>                            rdf:rest
>                                    [ a       rdf:List , rdfs:Resource ;
>                                      rdf:first<urn:nasa:gsfc:giovanni3:operation:G3_TimeAvg>  ;
>                                      rdf:rest
>                                              [ a       rdf:List , rdfs:Resource ;
>                                                rdf:first<urn:nasa:gsfc:giovanni3:operation:G3_Map2Plot>  ;
>                                                rdf:rest ()
>                                              ]
>                                    ]
>                          ]
>                ] .
>
> _:b1  a       owl:Restriction , rdfs:Resource , rdfs:Class ;
>        rdfs:subClassOf _:b1 , rdfs:Resource ;
>        owl:cardinality "1"^^xsd:nonNegativeInteger ;
>        owl:onProperty mdsa:selectedService .
>
> _:b2  a       owl:Restriction , rdfs:Resource , rdfs:Class ;
>        rdfs:subClassOf rdfs:Resource , _:b2 ;
>        owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
>        owl:onProperty mdsa:startDateTime .
>
> _:b3  a       owl:Restriction , rdfs:Resource , rdfs:Class ;
>        rdfs:subClassOf _:b3 , rdfs:Resource ;
>        owl:cardinality "1"^^xsd:nonNegativeInteger ;
>        owl:onProperty mdsa:selectedVariables .
>
> []    a       owl:Thing , mdsa:Report , rdfs:Resource , mdsa:SimilarityReport ;
>        mdsa:aboutAnalysisSettings
>                [ a       _:b3 , owl:Thing , mdsa:AnalysisSettings , _:b1 , rdfs:Resource , _:b4 , _:b5 ;
>                  mdsa:selectedService
>                          <urn:nasa:gsfc:giovanni3:service:latlonplot>  ;
>                  mdsa:selectedSpatialExtent
>                          [ a       mdsa:GeoBoundingBox , owl:Thing , rdfs:Resource , mdsa:SpatialExtent ;
>                            mdsa:east 180.0 ;
>                            mdsa:north 90.0 ;
>                            mdsa:south 20.0 ;
>                            mdsa:west 0.0
>                          ] ;
>                  mdsa:selectedTemporalExtent
>                          [ a       _:b6 , owl:Thing , mdsa:TemporalExtent , rdfs:Resource , mdsa:TimePeriod , _:b2 ;
>                            mdsa:endDateTime "2008-01-31T00:00:00Z"^^xsd:dateTime ;
>                            mdsa:startDateTime "2008-01-01T00:00:00Z"^^xsd:dateTime
>                          ] ;
>                  mdsa:selectedVariables
>                          [ a       rdf:List , rdfs:Resource ;
>                            rdf:first<urn:nasa:eosdis:variable:MYD08_D3.051:Optical_Depth_Land_And_Ocean_Mean>  ;
>                            rdf:rest
>                                    [ a       rdf:List , rdfs:Resource ;
>                                      rdf:first<urn:nasa:eosdis:variable:MOD08_D3.051:Optical_Depth_Land_And_Ocean_Mean>  ;
>                                      rdf:rest ()
>                                    ]
>                          ] ;
>                  dcterms:identifier "getReportTestID"^^xsd:string
>                ] ;
>        mdsa:hasCaveat
>                [ a       mdsa:DifferentDatasetCaveat , owl:Thing , rdfs:Resource , mdsa:Caveat , mdsa:SimilarityCaveat , _:b7 ;
>                  rdfs:comment "datasets different" ;
>                  mdsa:subject<urn:nasa:eosdis:dataset:MOD08_D3.051>  ,<urn:nasa:eosdis:dataset:MYD08_D3.051>
>                ] ;
>        mdsa:hasCaveat
>                [ a       mdsa:DifferentSatelliteDayTimeNodesCaveat , owl:Thing , rdfs:Resource , mdsa:Caveat , mdsa:SimilarityCaveat , _:b7 ;
>                  rdfs:comment "satellite daytime nodes different" ;
>                  mdsa:subject<urn:nasa:satellite:deployment:aqua>  ,<urn:nasa:satellite:deployment:terra>
>                ] ;
>        mdsa:hasCaveat
>                [ a       owl:Thing , mdsa:DifferentSatelliteNominalEquatorialCrossingTimesCaveat , rdfs:Resource , mdsa:Caveat , mdsa:SimilarityCaveat , _:b7 ;
>                  rdfs:comment "nominal equatorial crossing times different" ;
>                  mdsa:subject<urn:nasa:satellite:deployment:aqua>  ,<urn:nasa:satellite:deployment:terra>
>                ] ;
>        dcterms:identifier "getReportTestID"^^xsd:string .
>
> _:b6  a       owl:Restriction , rdfs:Resource , rdfs:Class ;
>        rdfs:subClassOf _:b6 , rdfs:Resource ;
>        owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
>        owl:onProperty mdsa:endDateTime .
>
> _:b4  a       owl:Restriction , rdfs:Resource , rdfs:Class ;
>        rdfs:subClassOf rdfs:Resource , _:b4 ;
>        owl:cardinality "1"^^xsd:nonNegativeInteger ;
>        owl:onProperty mdsa:selectedTemporalExtent .
>
> _:b7  a       owl:Restriction , rdfs:Resource , rdfs:Class ;
>        rdfs:subClassOf rdfs:Resource , _:b7 ;
>        owl:minCardinality "2"^^xsd:nonNegativeInteger ;
>        owl:onProperty mdsa:subject .
>
> _:b5  a       owl:Restriction , rdfs:Resource , rdfs:Class ;
>        rdfs:subClassOf rdfs:Resource , _:b5 ;
>        owl:cardinality "1"^^xsd:nonNegativeInteger ;
>        owl:onProperty mdsa:selectedSpatialExtent .
>
> RESULTS OF DESCRIBE on<urn:nasa:gsfc:giovanni3:operation:G3_DataFetching>:
>
> @prefix :<http://escience.rpi.edu/ontology/mdsa/mdsa-data#>  .
> @prefix rdfs:<http://www.w3.org/2000/01/rdf-schema#>  .
> @prefix mdsa-dq:<http://escience.rpi.edu/ontology/mdsa/mdsa-dq#>  .
> @prefix mdsa:<http://escience.rpi.edu/ontology/mdsa/mdsa.owl#>  .
> @prefix owl:<http://www.w3.org/2002/07/owl#>  .
> @prefix xsd:<http://www.w3.org/2001/XMLSchema#>  .
> @prefix rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>  .
> @prefix dcterms:<http://purl.org/dc/terms/>  .
>
> <urn:nasa:gsfc:giovanni3:operation:G3_DataFetching>
>        a       mdsa:Operation , owl:Thing , rdfs:Resource ;
>        rdfs:comment "Data retrieval — also called data fetching— acquires data from the data source (archive or database) and makes it available to Giovanni-3 for visualization and analysis."^^xsd:string ;
>        rdfs:label "Data Fetching"^^xsd:string ;
>        rdfs:seeAlso<http://disc.sci.gsfc.nasa.gov/giovanni/additional/users-manual/G3_operation_data_fetching.shtml>  .
>
>