SPIN-reporting.spin.ttl 5.58 KB
# baseURI: http://www.reportinghub.no/system/spin/reporting
# imports: http://spinrdf.org/spin
# imports: http://www.reportinghub.no/system/schema/reporting

@prefix fn:      <http://www.w3.org/2005/xpath-functions#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix reportspin:  <http://www.reportinghub.no/system/spin/reporting#> .
@prefix sp:      <http://spinrdf.org/sp#> .
@prefix spin:    <http://spinrdf.org/spin#> .
@prefix spl:     <http://spinrdf.org/spl#> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .

<http://spinrdf.org/arg#date>
      rdf:type rdf:Property ;
      rdfs:label "date"^^xsd:string ;
      rdfs:subPropertyOf sp:arg .

<http://spinrdf.org/arg#id>
      rdf:type rdf:Property ;
      rdfs:label "id"^^xsd:string ;
      rdfs:subPropertyOf sp:arg .

<http://spinrdf.org/arg#wellBoreId>
      rdf:type rdf:Property ;
      rdfs:label "well bore id"^^xsd:string ;
      rdfs:subPropertyOf sp:arg .

<http://www.reportinghub.no/system/spin/reporting>
      rdf:type owl:Ontology ;
      rdfs:comment "SPIN functions and templates to support querying report metadata."^^xsd:string ;
      owl:imports <http://spinrdf.org/spin> , <http://www.reportinghub.no/system/schema/reporting> ;
      owl:versionInfo "0.1.0"^^xsd:string .

reportspin:graphByDDRId
      rdf:type spin:Function ;
      rdfs:comment "Gets the URI of the named graph containing the triples submitted by a report:DDR (metadata) with a given id."^^xsd:string ;
      rdfs:label "graph by DDRId"^^xsd:string ;
      rdfs:subClassOf spin:Functions ;
      spin:body
              [ rdf:type sp:Select ;
                sp:resultVariables ([ rdf:type sp:iri ;
                            sp:arg1 [ sp:varName "uri"^^xsd:string
                                    ]
                          ]) ;
                sp:where ([ rdf:type sp:Bind ;
                            sp:expression
                                    [ rdf:type fn:concat ;
                                      sp:arg1 "http://www.reportinghub.no/system/ddr/" ;
                                      sp:arg2 [ sp:varName "id"^^xsd:string
                                              ]
                                    ] ;
                            sp:variable
                                    [ sp:varName "uri"^^xsd:string
                                    ]
                          ])
              ] ;
      spin:constraint
              [ rdf:type spl:Argument ;
                rdfs:comment "The id of the DDR metadata."^^xsd:string ;
                spl:predicate <http://spinrdf.org/arg#id> ;
                spl:valueType xsd:string
              ] ;
      spin:returnType rdfs:Resource .

reportspin:idOfDDRByDateAndWellBoreId
      rdf:type spin:Function ;
      rdfs:comment "Gets the id of a DDR defined by date and well bore id. If preliminary reports have been created, this will return the most recent one only."^^xsd:string ;
      rdfs:label "id of DDR by date and well bore id"^^xsd:string ;
      rdfs:subClassOf spin:Functions ;
      spin:body
              [ rdf:type sp:Select ;
                sp:orderBy ([ rdf:type sp:Desc ;
                            sp:expression
                                    [ sp:varName "created"^^xsd:string
                                    ]
                          ]) ;
                sp:resultVariables ([ sp:varName "id"^^xsd:string
                          ]) ;
                sp:where ([ sp:object
                                    [ sp:varName "wellBoreId"^^xsd:string
                                    ] ;
                            sp:predicate <http://www.reportinghub.no/system/schema/reporting#wellBoreId> ;
                            sp:subject
                                    [ sp:varName "report"^^xsd:string
                                    ]
                          ] [ sp:object
                                    [ sp:varName "date"^^xsd:string
                                    ] ;
                            sp:predicate <http://purl.org/dc/terms/date> ;
                            sp:subject
                                    [ sp:varName "report"^^xsd:string
                                    ]
                          ] [ sp:object
                                    [ sp:varName "created"^^xsd:string
                                    ] ;
                            sp:predicate <http://purl.org/dc/terms/created> ;
                            sp:subject
                                    [ sp:varName "report"^^xsd:string
                                    ]
                          ] [ sp:object
                                    [ sp:varName "id"^^xsd:string
                                    ] ;
                            sp:predicate <http://rdfs.org/sioc/ns#id> ;
                            sp:subject
                                    [ sp:varName "report"^^xsd:string
                                    ]
                          ])
              ] ;
      spin:constraint
              [ rdf:type spl:Argument ;
                rdfs:comment "The date of the DDR (not the submission date, but the start date of the report)."^^xsd:string ;
                spl:predicate <http://spinrdf.org/arg#date> ;
                spl:valueType xsd:date
              ] ;
      spin:constraint
              [ rdf:type spl:Argument ;
                rdfs:comment "The id of the well bore."^^xsd:string ;
                spl:predicate <http://spinrdf.org/arg#wellBoreId> ;
                spl:valueType xsd:string
              ] ;
      spin:returnType xsd:string .