SPIN-RH-v1.0.spin.ttl 12.6 KB
# baseURI: http://www.reportinghub.no/spin/rh
# imports: http://topbraid.org/spin/spinmapl
# imports: http://www.reportinghub.no/1.1,1/schema/ddr
# imports: http://spinrdf.org/spin
# imports: http://www.reportinghub.no/1.1/schema/npd

@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 rhspin:  <http://www.reportinghub.no/spin/rh#> .
@prefix sp:      <http://spinrdf.org/sp#> .
@prefix spif:    <http://spinrdf.org/spif#> .
@prefix spin:    <http://spinrdf.org/spin#> .
@prefix spl:     <http://spinrdf.org/spl#> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .

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

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

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

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

<http://www.reportinghub.no/spin/rh>
      rdf:type owl:Ontology ;
      rdfs:comment "A collection of SPIN functions and templates to support working with the ReportingHub schemas."^^xsd:string ;
      owl:imports <http://www.reportinghub.no/1.1/schema/npd> , <http://www.reportinghub.no/1.1,1/schema/ddr> , <http://spinrdf.org/spin> , <http://topbraid.org/spin/spinmapl> ;
      owl:versionInfo "0.1.0"^^xsd:string .

rhspin:GetWellBoresOfWell
      rdf:type spin:SelectTemplate ;
      rdfs:comment "Gets an ordered list of well bores that belong to a given Well. Result variables are ?wellBore and ?wellBoreName."^^xsd:string ;
      rdfs:label "Get well bores of well"^^xsd:string ;
      rdfs:subClassOf spin:SelectTemplates ;
      spin:body
              [ rdf:type sp:Select ;
                sp:orderBy (_:b1) ;
                sp:resultVariables (_:b2 _:b1) ;
                sp:where ([ rdf:type sp:NamedGraph ;
                            sp:elements ([ sp:object
                                                [ sp:varName "well"^^xsd:string
                                                ] ;
                                        sp:predicate <http://www.reportinghub.no/schema/npd#partOfWell> ;
                                        sp:subject _:b2
                                      ] [ sp:object _:b1 ;
                                        sp:predicate <http://www.reportinghub.no/schema/npd#name> ;
                                        sp:subject _:b2
                                      ]) ;
                            sp:graphNameNode <https://www.reportinghub.no/data/npd>
                          ])
              ] ;
      spin:constraint
              [ rdf:type spl:Argument ;
                rdfs:comment "The Well to get the bores of."^^xsd:string ;
                spl:predicate <http://spinrdf.org/arg#well> ;
                spl:valueType <http://www.reportinghub.no/schema/npd#Well>
              ] .

rhspin:baaById
      rdf:type spin:Function ;
      rdfs:label "baa by id"^^xsd:string ;
      rdfs:subClassOf spl:URIFunctions ;
      spin:body
              [ rdf:type sp:Select ;
                sp:resultVariables ([ rdf:type sp:iri ;
                            sp:arg1 [ rdf:type fn:concat ;
                                      sp:arg1 "https://www.reportinghub.no/data/npd/BAA-" ;
                                      sp:arg2 [ sp:varName "id"^^xsd:string
                                              ]
                                    ]
                          ]) ;
                sp:where ()
              ] ;
      spin:constraint
              [ rdf:type spl:Argument ;
                rdfs:comment "The NPD id of the BAA."^^xsd:string ;
                spl:predicate <http://spinrdf.org/arg#id> ;
                spl:valueType xsd:string
              ] .

rhspin:companyById
      rdf:type spin:Function ;
      rdfs:label "company by id"^^xsd:string ;
      rdfs:subClassOf spl:URIFunctions ;
      spin:body
              [ rdf:type sp:Select ;
                sp:resultVariables ([ rdf:type sp:iri ;
                            sp:arg1 [ rdf:type fn:concat ;
                                      sp:arg1 "https://www.reportinghub.no/data/npd/Company-" ;
                                      sp:arg2 [ sp:varName "id"^^xsd:string
                                              ]
                                    ]
                          ]) ;
                sp:where ()
              ] ;
      spin:constraint
              [ rdf:type spl:Argument ;
                rdfs:comment "The NPD id of the company."^^xsd:string ;
                spl:predicate <http://spinrdf.org/arg#id> ;
                spl:valueType xsd:string
              ] .

rhspin:discoveryById
      rdf:type spin:Function ;
      rdfs:label "discovery by id"^^xsd:string ;
      rdfs:subClassOf spl:URIFunctions ;
      spin:body
              [ rdf:type sp:Select ;
                sp:resultVariables ([ rdf:type sp:iri ;
                            sp:arg1 [ rdf:type fn:concat ;
                                      sp:arg1 "https://www.reportinghub.no/data/npd/Discovery-" ;
                                      sp:arg2 [ sp:varName "id"^^xsd:string
                                              ]
                                    ]
                          ]) ;
                sp:where ()
              ] ;
      spin:constraint
              [ rdf:type spl:Argument ;
                rdfs:comment "The NPD id of the Discovery."^^xsd:string ;
                spl:predicate <http://spinrdf.org/arg#id> ;
                spl:valueType xsd:string
              ] .

rhspin:facilityById
      rdf:type spin:Function ;
      rdfs:label "facility by id"^^xsd:string ;
      rdfs:subClassOf spl:URIFunctions ;
      spin:body
              [ rdf:type sp:Select ;
                sp:resultVariables ([ rdf:type sp:iri ;
                            sp:arg1 [ rdf:type fn:concat ;
                                      sp:arg1 "https://www.reportinghub.no/data/npd/Facility-" ;
                                      sp:arg2 [ sp:varName "id"^^xsd:string
                                              ]
                                    ]
                          ]) ;
                sp:where ()
              ] ;
      spin:constraint
              [ rdf:type spl:Argument ;
                rdfs:comment "The NPD id of the facility."^^xsd:string ;
                spl:predicate <http://spinrdf.org/arg#id> ;
                spl:valueType xsd:string
              ] .

rhspin:fieldById
      rdf:type spin:Function ;
      rdfs:label "field by id"^^xsd:string ;
      rdfs:subClassOf spl:URIFunctions ;
      spin:body
              [ rdf:type sp:Select ;
                sp:resultVariables ([ rdf:type sp:iri ;
                            sp:arg1 [ rdf:type fn:concat ;
                                      sp:arg1 "https://www.reportinghub.no/data/npd/Field-" ;
                                      sp:arg2 [ sp:varName "id"^^xsd:string
                                              ]
                                    ]
                          ]) ;
                sp:where ()
              ] ;
      spin:constraint
              [ rdf:type spl:Argument ;
                rdfs:comment "The NPD id of the field."^^xsd:string ;
                spl:predicate <http://spinrdf.org/arg#id> ;
                spl:valueType xsd:string
              ] .

rhspin:licenceById
      rdf:type spin:Function ;
      rdfs:label "license by id"^^xsd:string ;
      rdfs:subClassOf spl:URIFunctions ;
      spin:body
              [ rdf:type sp:Select ;
                sp:resultVariables ([ rdf:type sp:iri ;
                            sp:arg1 [ rdf:type fn:concat ;
                                      sp:arg1 "https://www.reportinghub.no/data/npd/Licence-" ;
                                      sp:arg2 [ sp:varName "id"^^xsd:string
                                              ]
                                    ]
                          ]) ;
                sp:where ()
              ] ;
      spin:constraint
              [ rdf:type spl:Argument ;
                rdfs:comment "The id of the license."^^xsd:string ;
                spl:predicate <http://spinrdf.org/arg#id> ;
                spl:valueType xsd:string
              ] ;
      spin:returnType <http://www.reportinghub.no/schema/npd#Licence> .

rhspin:tufById
      rdf:type spin:Function ;
      rdfs:label "tuf by id"^^xsd:string ;
      rdfs:subClassOf spl:URIFunctions ;
      spin:body
              [ rdf:type sp:Select ;
                sp:resultVariables ([ rdf:type sp:iri ;
                            sp:arg1 [ rdf:type fn:concat ;
                                      sp:arg1 "https://www.reportinghub.no/data/npd/TUF-" ;
                                      sp:arg2 [ sp:varName "id"^^xsd:string
                                              ]
                                    ]
                          ]) ;
                sp:where ()
              ] ;
      spin:constraint
              [ rdf:type spl:Argument ;
                rdfs:comment "The NPD id of the TUF."^^xsd:string ;
                spl:predicate <http://spinrdf.org/arg#id> ;
                spl:valueType xsd:string
              ] .

rhspin:userName
      rdf:type spin:Function ;
      rdfs:comment "Gets the name of the currently logged in user."^^xsd:string ;
      rdfs:label "user name"^^xsd:string ;
      rdfs:subClassOf spin:Functions ;
      spin:returnType xsd:string .

rhspin:wellBoreByName
      rdf:type spin:Function ;
      rdfs:comment "Gets the URI resource of a well bore based on its NPD name."^^xsd:string ;
      rdfs:label "well bore by name"^^xsd:string ;
      rdfs:subClassOf spl:URIFunctions ;
      spin:body
              [ rdf:type sp:Select ;
                sp:resultVariables ([ rdf:type sp:iri ;
                            sp:arg1 [ rdf:type fn:concat ;
                                      sp:arg1 "https://www.reportinghub.no/data/npd/WellBore-" ;
                                      sp:arg2 [ rdf:type spif:replaceAll ;
                                                sp:arg1 [ rdf:type spif:replaceAll ;
                                                          sp:arg1 [ sp:varName "wellBoreName"^^xsd:string
                                                                  ] ;
                                                          sp:arg2 " " ;
                                                          sp:arg3 "_"
                                                        ] ;
                                                sp:arg2 "/" ;
                                                sp:arg3 "__"
                                              ]
                                    ]
                          ]) ;
                sp:where ()
              ] ;
      spin:constraint
              [ rdf:type spl:Argument ;
                rdfs:comment "The NPD ID of the well bore to get the URI of."^^xsd:string ;
                spl:predicate <http://spinrdf.org/arg#wellBoreName> ;
                spl:valueType xsd:string
              ] ;
      spin:returnType <http://www.reportinghub.no/schema/npd#WellBore> .

rhspin:wellByName
      rdf:type spin:Function ;
      rdfs:comment "Gets the URI resource of a well based on its NPD name."^^xsd:string ;
      rdfs:label "well by name"^^xsd:string ;
      rdfs:subClassOf spl:URIFunctions ;
      spin:body
              [ rdf:type sp:Select ;
                sp:resultVariables ([ rdf:type sp:iri ;
                            sp:arg1 [ rdf:type fn:concat ;
                                      sp:arg1 "https://www.reportinghub.no/data/npd/Well-" ;
                                      sp:arg2 [ rdf:type spif:replaceAll ;
                                                sp:arg1 [ sp:varName "wellName"^^xsd:string
                                                        ] ;
                                                sp:arg2 "/" ;
                                                sp:arg3 "__"
                                              ]
                                    ]
                          ]) ;
                sp:where ()
              ] ;
      spin:constraint
              [ rdf:type spl:Argument ;
                rdfs:comment "The NPD name of the well to get the URI of."^^xsd:string ;
                spl:predicate <http://spinrdf.org/arg#wellName> ;
                spl:valueType xsd:string
              ] ;
      spin:returnType <http://www.reportinghub.no/schema/npd#Well> .

_:b2  sp:varName "wellBore"^^xsd:string .

_:b1  sp:varName "wellBoreName"^^xsd:string .