B 空間問合せのSEM_MATCHサポート

この付録では、SEM_MATCHでの空間問合せを実行するためのSPARQL拡張関数のリファレンス情報を示します。

これらのファンクションを使用するには、「空間のサポート」に説明する概念を理解する必要があります。

ノート:

この付録では、geomLiteralが、orageo:WKTLiteralogc:wktLiteralogc:gmlLiteralogc:geoJSONLiteralおよびogc:kmlLiteral(これらは形式表現およびパラメータ記述で同義的に使用可能)のプレースホルダとして使用されます。(ただし、orageo:WKTLiteralまたはogc:wktLiteralが実際の例で使用されます。)

この付録には、次の各項で説明するGeoSPARQLおよびOracle固有の関数が含まれています。

B.1 空間サポート用GeoSPARQL関数

この項では、GeoSPARQL関数についてのリファレンス情報を提供します。

B.1.1 ogcf:aggBoundingBox

書式

ogcf:aggBoundingBox(geom : geomLiteral) : ogc:wktLiteral

説明

ジオメトリの入力セットの最小境界ボックス(矩形)である単一のジオメトリ・オブジェクトを戻す集計。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、米国下院議員選挙区ポリゴンの集計境界ボックスを検出します。

SELECT bb
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT (ogcf:aggBoundingBox(?cgeom) AS ?bb)
 WHERE
 { ?cdist orageo:hasExactGeometry ?cgeom }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.2 ogcf:aggBoundingCircle

書式

ogcf:aggBoundingCircle(geom : geomLiteral) : ogc:wktLiteral

説明

ジオメトリの入力セットの最小境界円である単一のジオメトリ・オブジェクトを戻す集計。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、米国下院議員選挙区ポリゴンの集計境界円を検出します。

SELECT bc
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT (ogcf:aggBoundingCircle(?cgeom) AS ?bc)
 WHERE
 { ?cdist orageo:hasExactGeometry ?cgeom }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.3 ogcf:aggCentroid

書式

ogcf:aggCentroid(geom : geomLiteral) : ogc:wktLiteral

説明

ジオメトリの入力セットの中心(中心点)である単一のジオメトリ・オブジェクトを戻す集計。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、米国下院議員選挙区ポリゴンの集計中心を検出します。

SELECT c
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT (ogcf:aggCentroid(?cgeom) AS ?c)
 WHERE
 { ?cdist orageo:hasExactGeometry ?cgeom }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.4 ogcf:aggConcaveHull

書式

ogcf:aggConcaveHull(geom : geomLiteral) : ogc:wktLiteral

説明

ジオメトリの入力セットの凹型である単一のジオメトリ・オブジェクトを戻す集計。凹型は、点の集合などの入力ジオメトリの領域を表現するポリゴンです。複雑な入力ジオメトリでは、通常、凹型は凸型の領域よりも非常に小さくなっています。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、米国下院議員選挙区ポリゴンの集計凹型を検出します。

SELECT ch
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT (ogcf:aggConcaveHull(?cgeom) AS ?ch)
 WHERE
 { ?cdist orageo:hasExactGeometry ?cgeom }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.5 ogcf:aggConvexHull

書式

ogcf:aggConvexHull(geom : geomLiteral) : ogc:wktLiteral

説明

ジオメトリの入力セットの凸型である単一のジオメトリ・オブジェクトを戻す集計。凸型とは、ジオメトリ・オブジェクトを完全に囲む最小ポリゴンを作成するために、使用する直線の辺をできるだけ少なくした、ジオメトリ・オブジェクトを完全に囲む単純な凸型のポリゴンです。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、米国下院議員選挙区ポリゴンの集計凸型を検出します。

SELECT ch
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT (ogcf:aggConvexHull(?cgeom) AS ?ch)
 WHERE
 { ?cdist orageo:hasExactGeometry ?cgeom }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.6 ogcf:aggUnion

書式

ogcf:aggUnion(geom : geomLiteral) : ogc:wktLiteral

説明

ジオメトリの入力セットの位相的な和集合である単一のジオメトリ・オブジェクトを戻す集計。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、米国下院議員選挙区ポリゴンの集計和集合を検出します。

SELECT u
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT (ogcf:aggUnion(?cgeom) AS ?u)
 WHERE
 { ?cdist orageo:hasExactGeometry ?cgeom }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.7 ogcf:Area

書式

ogcf:area(geom : geomLiteral, units : xsd:anyURI) : ogc:wktLiteral

説明

2次元ポリゴンの面積を戻します。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

units

測定単位:

  • <http://xmlns.oracle.com/rdf/geo/uom/{SDO_UNIT}>形式のURI (<http://xmlns.oracle.com/rdf/geo/uom/M>など)。MDSYS.SDO_AREA_UNITS表からのSDO_UNIT値がすべて認識されます。測定単位の仕様の詳細は、『Oracle Spatial開発者ガイド』測定単位のサポートに関する項を参照してください。
  • MDSYS.SDO_AREA_UNITS表に同等の単位があるQUDTボキャブラリの単位からのURI。たとえば、平方メートルの場合は<http://qudt.org/vocab/unit/M2>です。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、各米国下院議員選挙区ポリゴンの面積を平方メートルで検出します。

SELECT name, ca
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?name (ogcf:area(?cgeom, <http://qudt.org/vocab/unit/M2>) AS ?ca)
 WHERE
 { ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.8 ogcf:asGeoJSON

書式

ogcf:asGeoJSON(geom : geomLiteral) : ogc:geoJSONLiteral

説明

geomを同等のGeoJSON表現に変換します。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

ジオメトリをogc:geoJSONLiteralに変換すると、CRS84経度、緯度(GeoJSONでサポートされている唯一の座標参照系)への座標変換が行われます。

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、各米国下院議員選挙区ポリゴンをogc:geoJSONLiteralとして戻します。

SELECT name, gjson
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?name (ogcf:asGeoJSON(?cgeom) AS ?gjson)
 WHERE
 { ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.9 ogcf:asGML

書式

ogcf:asGML(geom : geomLiteral, gmlProfile : xsd:string) : ogc:gmlLiteral

説明

geomを同等のGML表現に変換します。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

gmlProfile

この引数は無視されます。GML 3.11プロファイルはすべてのケースで使用されます。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、各米国下院議員選挙区ポリゴンをogc:GMLLiteralとして戻します。

SELECT name, gml
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?name (ogcf:asGML(?cgeom, "3.11") AS ?gml)
 WHERE
 { ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.10 ogcf:asKML

書式

ogcf:asKML(geom : geomLiteral) : ogc:kmlLiteral

説明

geomを同等のKML表現に変換します。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

ジオメトリをogc:kmlLiteralに変換すると、CRS84経度、緯度(GMLでサポートされている唯一の座標参照系)への座標変換が行われます。

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、各米国下院議員選挙区ポリゴンをogc:kmlLiteralとして戻します。

SELECT name, kml
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?name (ogcf:asKML(?cgeom) AS ?kml)
 WHERE
 { ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.11 ogcf:asWKT

書式

ogcf:asWKT(geom : geomLiteral) : ogc:wktLiteral

説明

geomを同等のWKT表現に変換します。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、各米国下院議員選挙区ポリゴンをogc:wktLiteralとして戻します。

SELECT name, wkt
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?name (ogcf:asWKT(?cgeom) AS ?wkt)
 WHERE
 { ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.12 ogcf:boundary

書式

ogcf:boundary(geom : geomLiteral) : ogc:wktLiteral

説明

geomの境界の閉包であるジオメトリ・オブジェクトを戻します。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、米国下院議員選挙区ポリゴンの境界を検出します。

SELECT cb
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT (ogcf:boundary(?cgeom) AS ?cb)
 WHERE
 { ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom }'
,sem_models('gov_all_vm'), null 
,null
,null, null, ' ALLOW_DUP=T '));

B.1.13 ogcf:boundingCircle

書式

ogcf:boundingCircle(geom : geomLiteral) : ogc:wktLiteral

説明

geomを囲む最小境界円である形状オブジェクトを戻します。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、各米国下院議員選挙区ポリゴンを囲む最小境界円を戻します。

SELECT name, bc
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?name (ogcf:boundingCircle(?cgeom) AS ?bc)
 WHERE
 { ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.14 ogcf:buffer

書式

ogcf:buffer(geom : geomLiteral, radius : xsd:decimal, units : xsd:anyURI) : ogc:wktLiteral

説明

ジオメトリの周りの指定された半径(単位で測定)のバッファ・ポリゴンを戻します。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

radius

バッファを定義するために使用される半径の値。

units

測定単位:

  • <http://xmlns.oracle.com/rdf/geo/uom/{SDO_UNIT}>形式のURI (<http://xmlns.oracle.com/rdf/geo/uom/M>など)。MDSYS.SDO_DIST_UNITS表からのSDO_UNIT値がすべて認識されます。測定単位の仕様の詳細は、『Oracle Spatial開発者ガイド』測定単位のサポートに関する項を参照してください。
  • MDSYS.SDO_DIST_UNITS表に同等の単位があるQUDTボキャブラリの単位からのURI。たとえば、メートルの場合は<http://qudt.org/vocab/unit/M>です。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、指定された点の周り100kmのバッファ内にある米国下院議員選挙区ポリゴンを検出します。

SELECT name, cdist
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?name ?cdist
 WHERE
 { # HINT0={LEADING(?cgeom)}
   ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER (
     ogcf:sfWithin(?cgeom, 
       ogcf:buffer("POINT(-71.46444 42.7575)"^^ogc:wktLiteral,
                     100, 
                     <http://xmlns.oracle.com/rdf/geo/uom/KM>))) }'
,sem_models('gov_all_vm'), null 
,null
,null, null, ' ALLOW_DUP=T '));

B.1.15 ogcf:concaveHull

書式

ogcf:concaveHull(geom : geomLiteral) : ogc:wktLiteral

説明

geomの凹型部分を表現する形状オブジェクトを戻します。凸型は、ジオメトリ・オブジェクトを完全に囲む単純な凸型のポリゴンです。Spatialでは、指定したオブジェクトを完全に囲む最小ポリゴンを作成する場合に、使用する直線の辺をできるだけ少なくします。凸型は、複雑なジオメトリ・オブジェクトの近似値を取る場合に便利です。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、各米国下院議員選挙区ポリゴンの凹型を戻します。

SELECT name, ch
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?name (ogcf:concaveHull(?cgeom) AS ?ch)
 WHERE
 { ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.16 ogcf:convexHull

書式

ogcf:convexHull(geom : geomLiteral) : ogc:wktLiteral

説明

geomの凸型部分を表現するポリゴン・ジオメトリを戻します。(凸型とは、ジオメトリ・オブジェクトを完全に囲む最小ポリゴンを作成するために、使用する直線の辺をできるだけ少なくした、ジオメトリ・オブジェクトを完全に囲む単純な凸型のポリゴンです)。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、凸型が、指定された点を含む米国下院議員選挙区ポリゴンを検出します。

SELECT name, cdist
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?name ?cdist
 WHERE
 { ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER (ogcf:sfContains(ogcf:convexHull(?cgeom), 
      "POINT(-71.46444 42.7575)"^^ogc:wktLiteral)) } '
,sem_models('gov_all_vm'), null 
,null
,null, null, ' ALLOW_DUP=T '));

B.1.17 ogcf:coordinateDimension

書式

ogcf:coordinateDimension(geom : geomLiteral) : xsd:integer

説明

geomの座標次元を戻します。座標次元は、geomの座標参照系の位置を記述するために必要な測定値または軸の数です。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、各米国下院議員選挙区ポリゴンの座標次元を戻します。

SELECT cdist, cd
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?cdist (ogcf:coordinateDimension(?cgeom) AS ?cd)
 WHERE
 { ?cdist orageo:hasExactGeometry ?cgeom }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.18 ogcf:difference

書式

ogcf:difference(geom1 : geomLiteral, geom2 : geomLiteral) : ogc:wktLiteral

説明

geom1geom2で位相的に差(MINUS演算)となるジオメトリ・オブジェクトを戻します。

パラメータ

geom1

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

geom2

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、中心が、2つの指定されたポリゴンの差の内部にある米国下院議員選挙区ポリゴンを検出します。

SELECT name, cdist
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?name ?cdist
 WHERE
{ ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER (ogcf:sfWithin(orageo:centroid(?cgeom), 
        ogcf:difference(
          "Polygon((-83.6 34.1, -83.2 34.1, -83.2 34.5, -83.6 34.5, -83.6 34.1))"^^ogc:wktLiteral,
          "Polygon((-83.2 34.3, -83.0 34.3, -83.0 34.5, -83.2 34.5, -83.2 34.3))"^^ogc:wktLiteral))) } '
,sem_models('gov_all_vm'), null
,null, null, null, ' ALLOW_DUP=T '));

B.1.19 ogcf:dimension

書式

ogcf:dimension(geom : geomLiteral) : xsd:integer

説明

geomの次元を戻します。たとえば、点の次元は0、線は1、ポリゴンは2です。

.

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、各米国下院議員選挙区ポリゴンの次元を戻します。

SELECT cdist, cd
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?cdist (ogcf:dimension(?cgeom) AS ?cd)
 WHERE
 { ?cdist orageo:hasExactGeometry ?cgeom }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.20 ogcf:distance

書式

ogcf:distance(geom1 : geomLiteral, geom2 : geomLiteral, units : xsd:anyURI) : xsd:decimal

説明

geom1geom2の2点間の最短距離を、指定された単位で戻します。

パラメータ

geom1

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

geom2

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

units

測定単位:

  • <http://xmlns.oracle.com/rdf/geo/uom/{SDO_UNIT}>形式のURI (<http://xmlns.oracle.com/rdf/geo/uom/KM>など)。MDSYS.SDO_DIST_UNITS表からのSDO_UNIT値がすべて認識されます。測定単位の仕様の詳細は、『Oracle Spatial and Graph開発者ガイド』の測定単位の項を参照してください。
  • MDSYS.SDO_DIST_UNITS表に同等の単位があるQUDTボキャブラリの単位からのURI。たとえば、メートルの場合は<http://qudt.org/vocab/unit/M>です。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、指定された点からの距離に基づいて米国下院議員選挙区を順序付けします。

SELECT name, cdist
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?name ?cdist
 WHERE
 { # HINT0={LEADING(?cgeom)}
   ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
 }
 ORDER BY ASC(ogcf:distance(?cgeom,
                "POINT(-71.46444 42.7575)"^^ogc:wktLiteral,
                <http://xmlns.oracle.com/rdf/geo/uom/KM>))'
,sem_models('gov_all_vm'), null 
,null, null, null, ' ALLOW_DUP=T '))
ORDER BY sem$rownum;

B.1.21 ogcf:envelope

書式

ogcf:envelope(geom : geomLiteral) : ogc:wktLiteral

説明

geomの最小境界矩形(MBR)、つまり、geomを囲む単一の最小の矩形を戻します。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、最小境界矩形が、指定された点を含む米国下院議員選挙区ポリゴンを検出します。

SELECT name, cdist
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?name ?cdist
 WHERE 
 { ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER (ogcf:sfContains(ogcf:envelope(?cgeom), 
      "POINT(-71.46444 42.7575)"^^ogc:wktLiteral)) } '
,sem_models('gov_all_vm'), null 
,null, null, null, ' ALLOW_DUP=T '));

B.1.22 ogcf:geometryN

書式

ogcf:geometryN(geom : geomLiteral, geomindex : xsd:integer) : ogc:wktLiteral

説明

geomがジオメトリ・コレクションの場合はgeomn番目のジオメトリを戻し、geomが単一のジオメトリであり、n=1の場合はgeomを戻します。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

geomindex

コレクション内の目的のジオメトリの位置。最初のジオメトリの索引は1です。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、入力ジオメトリ・コレクションの2番目のジオメトリを戻します。

SELECT g
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT (ogcf:geometryN("GEOMETRYCOLLECTION(POINT(-75 44), LINESTRING(-75 44, -75 45), 
         POLYGON((-75 44, -75 43, -74 43, -74 44, -75 44)))"^^ogc:wktLiteral, 2) AS ?g)
 WHERE
 { }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.23 ogcf:geometryType

書式

ogcf:geometryType(geom : geomLiteral) : xsd:anyURI

説明

geomがメンバーである<http://www.opengis.net/ont/sf#Geometry>のサブタイプのURIを戻します。可能な戻り値は次のとおりです。

  • <http://www.opengis.net/ont/sf#Point>
  • <http://www.opengis.net/ont/sf#LineString>
  • <http://www.opengis.net/ont/sf#Polygon>
  • <http://www.opengis.net/ont/sf#GeometryCollection>
  • <http://www.opengis.net/ont/sf#MultiPoint>
  • <http://www.opengis.net/ont/sf#MultiLineString>
  • <http://www.opengis.net/ont/sf#MultiPolygon>
  • <http://www.opengis.net/ont/sf#Solid>
  • <http://www.opengis.net/ont/sf#MultiSolid>
  • <http://www.opengis.net/ont/sf#Unknown>

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、各米国下院議員選挙区ポリゴンのジオメトリ・タイプを戻します。

SELECT cdist, gtype
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?cdist (ogcf:geometryType(?cgeom) AS ?gtype)
 WHERE
 { ?cdist orageo:hasExactGeometry ?cgeom }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.24 ogcf:getSRID

書式

ogcf:getSRID(geom : geomLiteral) : xsd:anyURI

説明

geomの空間参照システムURIを戻します。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

戻されるURIは、<http://www.opengis.net/def/crs/EPSG/0/{srid}>という形式を取ります({srid}は、European Petroleum Survey Group (EPSG)の有効な空間参照システムIDです)。

EPSGジオメトリック・パラメータ・データセットに含まれないURIの場合、戻されるURIは、<http://xmlns.oracle.com/rdf/geo/srid/{srid}>という形式を取ります({srid}は、Oracle Spatial and Graphの有効な空間参照システムIDです)。

デフォルトの空間参照システムのWGS84経度-緯度の場合、URI <http://www.opengis.net/def/crs/OGC/1.3/CRS84>が戻されます。

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、米国下院議員選挙区ポリゴンの空間参照システムURIを検出します。

SELECT csrid
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT (ogcf:getSRID(?cgeom) AS ?csrid)
 WHERE
 { ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom }'
,sem_models('gov_all_vm'), null 
,null, null, null, ' ALLOW_DUP=T '));

B.1.25 ogcf:intersection

書式

ogcf:intersection (geom1 : geomLiteral, geom2 : geomLiteral) : ogc:wktLiteral

説明

geom1geom2で位相的に共通部分(AND演算)となるジオメトリ・オブジェクトを戻します。

パラメータ

geom1

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

geom2

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、中心が、2つの指定されたポリゴンの共通部分の内部にある米国下院議員選挙区ポリゴンを検出します。

SELECT name, cdist
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?name ?cdist
 WHERE
 { ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER (ogcf:sfWithin(orageo:centroid(?cgeom), 
        ogcf:intersection(
           "Polygon((-83.6 34.1, -83.2 34.1, -83.2 34.5, -83.6 34.5, -83.6 34.1))"^^ogc:wktLiteral,
           "Polygon((-83.2 34.3, -83.0 34.3, -83.0 34.5, -83.2 34.5, -83.2 34.3))"^^ogc:wktLiteral))) } '
,sem_models('gov_all_vm'), null 
,null, null, null, ' ALLOW_DUP=T '));

B.1.26 ogcf:is3D

書式

ogcf:is3D(geom : geomLiteral) : xsd:boolean

説明

geomの空間次元が3の場合、trueを戻します。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、3次元の米国下院議員選挙区ポリゴンがあるかどうかを確認します。

SELECT ask
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 ASK
 WHERE
 { ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER(ogcf:is3D(?cgeom)) }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.27 ogcf:isEmpty

書式

ogcf:isEmpty(geom : geomLiteral) : xsd:boolean

説明

geomが空のジオメトリの場合は、trueを戻します。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、空の米国下院議員選挙区ジオメトリがあるかどうかを確認します。

SELECT ask
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 ASK
 WHERE
 { ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER(ogcf:isEmpty(?cgeom)) }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.28 ogcf:isMeasured

書式

ogcf:isMeasured(geom : geomLiteral) : xsd:boolean

説明

geomにメジャー値がある場合は、trueを戻します。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、メジャー値がある米国下院議員選挙区ジオメトリがあるかどうかを確認します。

SELECT ask
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 ASK
 WHERE
 { ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER(ogcf:isMeasured(?cgeom)) }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.29 ogcf:isSimple

書式

ogcf:isSimple(geom : geomLiteral) : xsd:boolean

説明

geomが単純なジオメトリの場合は、trueを戻します。つまり、ジオメトリには、自己交差や同一の連続する頂点などの一貫性のない機能がありません。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXTは、ジオメトリが単純かどうかを判断する場合に使用します。SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXTTRUEを戻した場合、ジオメトリは単純です。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、単純でない下院議員選挙区ジオメトリを戻します。

SELECT cdist, cgeom
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?cdist ?cgeom
 WHERE
 { ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER(!ogcf:isSimple(?cgeom)) }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.30 ogcf:length

書式

ogcf:length(geom : geomLiteral, units : xsd:anyURI) : xsd:double

説明

geomの長さを戻します。長さは、geomの2つの点の間の最大距離です。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

units

測定単位:

  • <http://xmlns.oracle.com/rdf/geo/uom/{SDO_UNIT}>形式のURI (<http://xmlns.oracle.com/rdf/geo/uom/M>など)。MDSYS.SDO_DISTANCE_UNITS表からのSDO_UNIT値がすべて認識されます。測定単位の仕様の詳細は、『Oracle Spatial開発者ガイド』測定単位のサポートに関する項を参照してください。
  • MDSYS.SDO_DISTANCE_UNITS表に同等の単位があるQUDTボキャブラリの単位からのURI。たとえば、メートルの場合は<http://qudt.org/vocab/unit/M>です。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、最も長い米国下院議員選挙区の最大長をメートルで検出します。

SELECT maxl
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT (max(ogcf:length(?cgeom, <http://qudt.org/vocab/unit/M>)) AS ?maxl)
 WHERE
 { ?cdist orageo:hasExactGeometry ?cgeom }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.31 ogcf:maxX

書式

ogcf:maxX(geom : geomLiteral) : xsd:double

説明

geomの最大X座標値を戻します。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、各米国下院議員選挙区の最大X座標値を検出します。

SELECT cdist, maxX
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?cdist (ogcf:maxX(?cgeom) AS ?maxX)
 WHERE
 { ?cdist orageo:hasExactGeometry ?cgeom }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.32 ogcf:maxY

書式

ogcf:maxY(geom : geomLiteral) : xsd:double

説明

geomの最大Y座標値を戻します。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、各米国下院議員選挙区の最大Y座標値を検出します。

SELECT cdist, maxY
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?cdist (ogcf:maxY(?cgeom) AS ?maxY)
 WHERE
 { ?cdist orageo:hasExactGeometry ?cgeom }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.33 ogcf:maxZ

書式

ogcf:maxZ(geom : geomLiteral) : xsd:double

説明

geomの最大Z座標値を戻します。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、定数ジオメトリの最大Z座標値を検出します。

SELECT maxZ
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT (ogcf:maxZ("<http://www.opengis.net/def/crs/EPSG/0/4327> POLYGON((-75 44 10, -75 43 11,
             -74 43 11, -74 44 11, -75 44 10))"^^ogc:wktLiteral) AS ?maxZ)
 WHERE
 {  }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.34 ogcf:metricArea

書式

ogcf:metricArea(geom : geomLiteral) : xsd:double

説明

geomの面積を平方メートルで戻します。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、各米国下院議員選挙区の面積を平方メートルで検出します。

SELECT name, ma
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?name (ogcf:metricArea(?cgeom) AS ?ma)
 WHERE
 { ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.35 ogcf:metricBuffer

書式

ogcf:metricBuffer(geom : geomLiteral, radius : xsd:double) : ogc:wtkLiteral

説明

ジオメトリの周りの指定された半径(メートル単位)のバッファ・ポリゴンを戻します。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

radius

バッファを定義するために使用される半径の値(メートル単位)。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、指定された点の周り1000mのバッファ内にある米国下院議員選挙区ポリゴンを検出します。

SELECT name, cdist
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?name ?cdist
 WHERE
 { # HINT0={LEADING(?cgeom)}
   ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER (
     ogcf:sfWithin(?cgeom, 
       ogcf:metricBuffer("POINT(-71.46444 42.7575)"^^ogc:wktLiteral,
                         1000))) 
 }'
,sem_models('gov_all_vm'), null 
,null
,null, null, ' ALLOW_DUP=T '));

B.1.36 ogcf:metricLength

書式

ogcf:metricLength(geom : geomLiteral) : xsd:double

説明

geomの長さをメートルで戻します。長さは、geomの2つの点の間の最大距離です。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、最も長い米国下院議員選挙区の最大長をメートルで検出します。

SELECT cdist, maxl
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?cdist (max(ogcf:metricLength(?cgeom)) AS ?maxl)
 WHERE
 { ?cdist orageo:hasExactGeometry ?cgeom }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.37 ogcf:metricPerimeter

書式

ogcf:metricPerimeter(geom : geomLiteral) : xsd:double

説明

geomの外側の境界の長さをメートルで戻します。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、米国下院議員選挙区のセット全体での最大外周をメートルで検出します。

SELECT cdist, maxp
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?cdist (max(ogcf:metricPerimeter(?cgeom)) AS ?maxp)
 WHERE
 { ?cdist orageo:hasExactGeometry ?cgeom }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.38 ogcf:minX

書式

ogcf:minX(geom : geomLiteral) : xsd:double

説明

geomの最小X座標値を戻します。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、各米国下院議員選挙区の最小X座標値を検出します。

SELECT cdist, minX
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?cdist (ogcf:minX(?cgeom) AS ?minX)
 WHERE
 { ?cdist orageo:hasExactGeometry ?cgeom }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.39 ogcf:minY

書式

ogcf:minY(geom : geomLiteral) : xsd:double

説明

geomの最小Y座標値を戻します。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、各米国下院議員選挙区の最小Y座標値を検出します。

SELECT cdist, minY
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?cdist (ogcf:minY(?cgeom) AS ?minY)
 WHERE
 { ?cdist orageo:hasExactGeometry ?cgeom }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.40 ogcf:minZ

書式

ogcf:minZ(geom : geomLiteral) : xsd:double

説明

geomの最小Z座標値を戻します。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、定数ジオメトリの最小Z座標値を検出します。

SELECT minZ
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT (ogcf:minZ("<http://www.opengis.net/def/crs/EPSG/0/4327> POLYGON((-75 44 10, -75 43 11, -74 43 11,
                         -74 44 11, -75 44 10))"^^ogc:wktLiteral) AS ?minZ)
 WHERE
 {  }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.41 ogcf:numGeometries

書式

ogcf:numGeometries(geom : geomLiteral) : xsd:int

説明

geom内のジオメトリの数を戻します。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、定数ジオメトリ・コレクション内のジオメトリの数を検出します。

SELECT ng
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT (ogcf:numGeometries("GEOMETRYCOLLECTION(POINT(-75 44), LINESTRING(-75 44, -75 45), POLYGON((-75 44, -75 43, -74 43, -74 44, -75 44)))"^^ogc:wktLiteral) AS ?ng)
 WHERE
 {  }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.42 ogcf:perimeter

書式

ogcf:perimeter(geom : geomLiteral, units : xsd:anyURI) : xsd:double

説明

unitsで測定されたgeomの外側の境界の長さを戻します。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

units

測定単位:

  • <http://xmlns.oracle.com/rdf/geo/uom/{SDO_UNIT}>形式のURI (<http://xmlns.oracle.com/rdf/geo/uom/M>など)。MDSYS.SDO_DISTANCE_UNITS表からのSDO_UNIT値がすべて認識されます。測定単位の仕様の詳細は、『Oracle Spatial開発者ガイド』測定単位のサポートに関する項を参照してください。
  • MDSYS.SDO_DISTANCE_UNITS表に同等の単位があるQUDTボキャブラリの単位からのURI。たとえば、メートルの場合は<http://qudt.org/vocab/unit/M>です。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、米国下院議員選挙区のセット全体での最大外周をメートルで検出します。

SELECT maxp
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT (max(ogcf:perimeter(?cgeom, <http://qudt.org/vocab/unit/M>)) AS ?maxp)
 WHERE
 { ?cdist orageo:hasExactGeometry ?cgeom }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.43 ogcf:relate

書式

ogcf:relate(geom1 : geomLiteral, geom2 : geomLiteral, pattern-matrix : xsd:string) : xsd:boolean

説明

geom1geom2間の位相関係が、指定されたDE-9IMパターンマトリックスを満たす場合、trueを戻します。それ以外の場合はfalseを返します。

パラメータ

geom1

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

geom2

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

pattern-matrix

T(true)およびF(false)の値からなる、次元的に拡張された9交差モデル(DE-9IM)の交差パターン文字列。DE-9IMパターン文字列は、2つのジオメトリの内部、境界および外部の共通部分を示します。

使用上のノート

問合せ変数と定数ジオメトリを使用してogcf:relateをコールする場合は、常に、問合せ変数を1番目のパラメータとして、定数ジオメトリを2番目のパラメータとして使用します。

最適なパフォーマンスを得るには、geom1は、ローカル変数(つまり、ogcf:relate空間フィルタを含む基本的なグラフ・パターンに出現する変数)である必要があります。

問合せが、?varに対する制限的なogcf:relate空間フィルタを含む場合は、LEADING(?var) HINT0ヒントを使用することをお薦めします。

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

DE-9IM交差パターンの詳細は、OGCのシンプル・フィーチャの仕様(OGC 06-103r3)を参照してください。OGCのGeoSPARQLの仕様も参照してください。

次の例では、指定された点を含む米国下院議員選挙区を検出します。

SELECT name, cdist
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?name ?cdist
 WHERE
 { # HINT0={LEADING(?cgeom)}
   ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER (ogcf:relate(?cgeom, 
      "POINT(-71.46444 42.7575)"^^ogc:wktLiteral,
      "TTTFFTFFT")) } '
,sem_models('gov_all_vm'), null 
,null, null, null, ' ALLOW_DUP=T '
));

B.1.44 ogcf:sfContains

書式

ogcf:sfContains(geom1 : geomLiteral, geom2 : geomLiteral) : xsd:boolean

説明

OGCのシンプル・フィーチャの仕様(OGC 06-103r3)で定義されているようにgeom1geom2を空間的に含む場合、trueを戻します。それ以外の場合はfalseを返します。

パラメータ

geom1

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

geom2

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

問合せ変数と定数ジオメトリを使用してこの関数をコールする場合は、常に、問合せ変数を1番目のパラメータとして、定数ジオメトリを2番目のパラメータとして使用します。

最適なパフォーマンスを得るには、geom1は、ローカル変数(つまり、ogcf:sfContains空間フィルタを含む基本的なグラフ・パターンに出現する変数)である必要があります。

問合せが、?varに対する制限的なogcf:sfContains空間フィルタを含む場合は、LEADING(?var) HINT0ヒントを使用することをお薦めします。

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、定数ポリゴンを空間的に含む米国下院議員選挙区ポリゴンを検出します。

SELECT name, cdist
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?name ?cdist
 WHERE
 { # HINT0={LEADING(?cgeom)}
   ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER (ogcf:sfContains(?cgeom, 
             "Polygon((-83.6 34.1, -83.2 34.1, -83.2 34.5, -83.6 34.5, -83.6 34.1))"^^ogc:wktLiteral)) } '
,sem_models('gov_all_vm'), null 
,null, null, null, ' ALLOW_DUP=T '));

B.1.45 ogcf:sfCrosses

書式

ogcf:sfCrosses(geom1 : geomLiteral, geom2 : geomLiteral) : xsd:boolean

説明

OGCのシンプル・フィーチャの仕様(OGC 06-103r3)で定義されているようにgeom1geom2を空間的に横断する場合、trueを戻します。それ以外の場合はfalseを返します。

パラメータ

geom1

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

geom2

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

問合せ変数と定数ジオメトリを使用してこの関数をコールする場合は、常に、問合せ変数を1番目のパラメータとして、定数ジオメトリを2番目のパラメータとして使用します。

最適なパフォーマンスを得るには、geom1は、ローカル変数(つまり、ogcf:sfCrosses空間フィルタを含む基本的なグラフ・パターンに出現する変数)である必要があります。

問合せが、?varに対する制限的なogcf:sfCrosses空間フィルタを含む場合は、LEADING(?var) HINT0ヒントを使用することをお薦めします。

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、定数ポリゴンを空間的に横断する米国下院議員選挙区ポリゴンを検出します。

SELECT name, cdist
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?name ?cdist
 WHERE
 { # HINT0={LEADING(?cgeom)}
   ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER (ogcf:sfCrosses(?cgeom, 
             "Polygon((-83.6 34.1, -83.2 34.1, -83.2 34.5, -83.6 34.5, -83.6 34.1))"^^ogc:wktLiteral)) } '
,sem_models('gov_all_vm'), null 
,null, null, null, ' ALLOW_DUP=T '));

B.1.46 ogcf:sfDisjoint

書式

ogcf:fDisjoint(geom1 : geomLiteral, geom2 : geomLiteral) : xsd:boolean

説明

OGCのシンプル・フィーチャの仕様(OGC 06-103r3)で定義されているように2つのジオメトリが空間的に非接続である場合、trueを戻します。それ以外の場合はfalseを返します。

パラメータ

geom1

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

geom2

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

ogcf:sfDisjointフィルタは、評価のために空間索引を使用できないため、パフォーマンスは、多くの場合、他のシンプル・フィーチャの空間関数よりも非常に悪くなります。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、定数ポリゴンから空間的に非接続である米国下院議員選挙区ポリゴンを検出します。

SELECT name, cdist
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?name ?cdist
 WHERE 
 { # HINT0={LEADING(?cgeom)}
   ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom
   FILTER (ogcf:sfDisjoint(?cgeom,
             "Polygon((-83.6 34.1, -83.2 34.1, -83.2 34.5, -83.6 34.5, -83.6 34.1))"^^ogc:wktLiteral)) } '
,sem_models('gov_all_vm'), null
,null, null, null, ' ALLOW_DUP=T '));

B.1.47 ogcf:sfEquals

書式

ogcf:sfEquals(geom1 : geomLiteral, geom2 : geomLiteral) : xsd:boolean

説明

OGCのシンプル・フィーチャの仕様(OGC 06-103r3)で定義されているように2つのジオメトリが空間的に同じである場合、trueを戻します。それ以外の場合はfalseを返します。

パラメータ

geom1

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

geom2

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

問合せ変数と定数ジオメトリを使用してこの関数をコールする場合は、常に、問合せ変数を1番目のパラメータとして、定数ジオメトリを2番目のパラメータとして使用します。

最適なパフォーマンスを得るには、geom1は、ローカル変数(つまり、ogcf:sfEquals空間フィルタを含む基本的なグラフ・パターンに出現する変数)である必要があります。

問合せが、?varに対する制限的なogcf:sfEquals空間フィルタを含む場合は、LEADING(?var) HINT0ヒントを使用することをお薦めします。

RDFでの空間データの表現、索引付け、および問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、定数ポリゴンと空間的に同じである米国下院議員選挙区ポリゴンを検出します。

SELECT name, cdist
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?name ?cdist
 WHERE
 { # HINT0={LEADING(?cgeom)}
   ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER (ogcf:sfEquals(?cgeom, 
             "Polygon((-83.6 34.1, -83.2 34.1, -83.2 34.5, -83.6 34.5, -83.6 34.1))"^^ogc:wktLiteral)) } '
,sem_models('gov_all_vm'), null 
,null, null, null, ' ALLOW_DUP=T '));

B.1.48 ogcf:sfIntersects

書式

ogcf:sfIntersects(geom1 : geomLiteral, geom2 : geomLiteral) : xsd:boolean

説明

OGCのシンプル・フィーチャの仕様(OGC 06-103r3)で定義されているように2つのジオメトリが非接続でない場合、trueを戻します。それ以外の場合はfalseを返します。

パラメータ

geom1

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

geom2

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

問合せ変数と定数ジオメトリを使用してこの関数をコールする場合は、常に、問合せ変数を1番目のパラメータとして、定数ジオメトリを2番目のパラメータとして使用します。

最適なパフォーマンスを得るには、geom1は、ローカル変数(つまり、ogcf:sfIntersects空間フィルタを含む基本的なグラフ・パターンに出現する変数)である必要があります。

問合せが、?varに対する制限的なogcf:sfIntersects空間フィルタを含む場合は、LEADING(?var) HINT0ヒントを使用することをお薦めします。

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、定数ポリゴンと交差する米国下院議員選挙区ポリゴンを検出します。

SELECT name, cdist
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?name ?cdist
 WHERE
{ # HINT0={LEADING(?cgeom)}
   ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER (ogcf:sfIntersects(?cgeom, 
             "Polygon((-83.6 34.1, -83.2 34.1, -83.2 34.5, -83.6 34.5, -83.6 34.1))"^^ogc:wktLiteral)) } '
,sem_models('gov_all_vm'), null 
,null, null, null, ' ALLOW_DUP=T '));

B.1.49 ogcf:sfOverlaps

書式

ogcf:sfOverlaps(geom1 : geomLiteral, geom2 : geomLiteral) : xsd:boolean

説明

OGCのシンプル・フィーチャの仕様(OGC 06-103r3)で定義されているようにgeom1geom2に空間的に重なる場合、trueを戻します。それ以外の場合はfalseを返します。

パラメータ

geom1

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

geom2

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

問合せ変数と定数ジオメトリを使用してこの関数をコールする場合は、常に、問合せ変数を1番目のパラメータとして、定数ジオメトリを2番目のパラメータとして使用します。

最適なパフォーマンスを得るには、geom1は、ローカル変数(つまり、ogcf:sfOverlaps空間フィルタを含む基本的なグラフ・パターンに出現する変数)である必要があります。

問合せが、?varに対する制限的なogcf:sfOverlaps空間フィルタを含む場合は、LEADING(?var) HINT0ヒントを使用することをお薦めします。

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、定数ポリゴンに空間的に重なる米国下院議員選挙区ポリゴンを検出します。

SELECT name, cdist
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?name ?cdist
 WHERE
{ # HINT0={LEADING(?cgeom)}
   ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER (ogcf:sfOverlaps(?cgeom, 
             "Polygon((-83.6 34.1, -83.2 34.1, -83.2 34.5, -83.6 34.5, -83.6 34.1))"^^ogc:wktLiteral)) } '
,sem_models('gov_all_vm'), null 
,null, null, null, ' ALLOW_DUP=T '));

B.1.50 ogcf:sfTouches

書式

ogcf:sfTouches(geom1 : geomLiteral, geom2 : geomLiteral) : xsd:boolean

説明

OGCのシンプル・フィーチャの仕様(OGC 06-103r3)で定義されているように2つのジオメトリが空間的に接している場合、trueを戻します。それ以外の場合はfalseを返します。

パラメータ

geom1

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

geom2

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

問合せ変数と定数ジオメトリを使用してこの関数をコールする場合は、常に、問合せ変数を1番目のパラメータとして、定数ジオメトリを2番目のパラメータとして使用します。

最適なパフォーマンスを得るには、geom1は、ローカル変数(つまり、ogcf:sfTouches空間フィルタを含む基本的なグラフ・パターンに出現する変数)である必要があります。

問合せが、?varに対する制限的なogcf:sfTouches空間フィルタを含む場合は、LEADING(?var) HINT0ヒントを使用することをお薦めします。

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、定数ポリゴンに空間的に接している米国下院議員選挙区ポリゴンを検出します。

SELECT name, cdist
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?name ?cdist
 WHERE
 { # HINT0={LEADING(?cgeom)}
   ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER (ogcf:sfTouches(?cgeom, 
             "Polygon((-83.6 34.1, -83.2 34.1, -83.2 34.5, -83.6 34.5, -83.6 34.1))"^^ogc:wktLiteral)) } '
,sem_models('gov_all_vm'), null 
,null, null, null, ' ALLOW_DUP=T '));

B.1.51 ogcf:sfWithin

書式

ogcf:sfWithin(geom1 : geomLiteral, geom2 : geomLiteral) : xsd:boolean

説明

OGCのシンプル・フィーチャの仕様(OGC 06-103r3)で定義されているようにgeom1が空間的にgeom2の内部にある場合、trueを戻します。それ以外の場合はfalseを返します。

パラメータ

geom1

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

geom2

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

問合せ変数と定数ジオメトリを使用してこの関数をコールする場合は、常に、問合せ変数を1番目のパラメータとして、定数ジオメトリを2番目のパラメータとして使用します。

最適なパフォーマンスを得るには、geom1は、ローカル変数(つまり、ogcf:sfWithin空間フィルタを含む基本的なグラフ・パターンに出現する変数)である必要があります。

問合せが、?varに対する制限的なogcf:sfWithin空間フィルタを含む場合は、LEADING(?var) HINT0ヒントを使用することをお薦めします。

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、空間的に定数ポリゴンの内部にある米国下院議員選挙区ポリゴンを検出します。

SELECT name, cdist
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?name ?cdist
 WHERE
 { # HINT0={LEADING(?cgeom)}
   ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER (ogcf:sfWithin(?cgeom, 
             "Polygon((-83.6 34.1, -83.2 34.1, -83.2 34.5, -83.6 34.5, -83.6 34.1))"^^ogc:wktLiteral)) } '
,sem_models('gov_all_vm'), null 
,null, null, null, ' ALLOW_DUP=T '));

B.1.52 ogcf:spatialDimension

書式

ogcf:spatialDimension(geom : geomLiteral) : xsd:integer

説明

geomの空間次元を戻します。つまり、geomの空間座標に使用される次元の数です。メジャー値に使用される次元は含まれません。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、各米国下院議員選挙区ポリゴンの空間次元を戻します。

SELECT cdist, sd
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?cdist (ogcf:spatialDimension(?cgeom) AS ?sd)
 WHERE
 { ?cdist orageo:hasExactGeometry ?cgeom }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.53 ogcf:symDifference

書式

ogcf:symDifference(geom1 : geomLiteral, geom2 : geomLiteral) : ogc:wktLiteral

説明

geom1geom2で位相的に排他的論理和(XOR演算)となるジオメトリ・オブジェクトを戻します。

パラメータ

geom1

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

geom2

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、指定された点の周り100kmのバッファ内にある米国下院議員選挙区ポリゴンを検出します。

SELECT name, cdist
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?name ?cdist
 WHERE
 { ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER (ogcf:sfWithin(orageo:centroid(?cgeom), 
             ogcf:symDifference(
                "Polygon((-83.6 34.1, -83.2 34.1, -83.2 34.5, -83.6 34.5, -83.6 34.1))"^^ogc:wktLiteral,
                "Polygon((-83.2 34.3, -83.0 34.3, -83.0 34.5, -83.2 34.5, -83.2 34.3))"^^ogc:wktLiteral))) } '
,sem_models('gov_all_vm'), null 
,null, null, null, ' ALLOW_DUP=T '));

B.1.54 ogcf:transform

書式

ogcf:transform(geom : geomLiteral, srsIRI xsd:anyURI) : ogc:wktLiteral

説明

geomを、srsIRIで定義された空間参照システムに変換します。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

srsIRI

ターゲット空間参照システムIRI。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

サポートされる空間参照システムIRIは、<http://www.opengis.net/def/crs/EPSG/0/{srid}>という形式を取ります({srid}は、European Petroleum Survey Group (EPSG)によって定義される有効な空間参照システムIDです)。EPSGジオメトリック・パラメータ・データセットに含まれないIRIの場合、<http://xmlns.oracle.com/rdf/geo/srid/{srid}>という形式の空間参照システムIRIがサポートされます({srid}は、Oracle Spatialの有効な空間参照システムIDです)。

次の例では、各下院議員選挙区ポリゴンをNH州平面座標参照系(EPSG:3613)に投影します。

SELECT cdist, nhg
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?cdist (ogcf:transform(?cgeom, <http://www.opengis.net/def/crs/EPSG/0/3613>) AS ?nhg)
 WHERE
 { ?cdist orageo:hasExactGeometry ?cgeom }'
,sem_models('gov_all_vm'), null 
, null ,null, null, ' ALLOW_DUP=T '));

B.1.55 ogcf:union

書式

ogcf:union(geom1 : geomLiteral, geom2 : geomLiteral) : ogc:wktLiteral

説明

geom1geom2で位相的に結合部分(OR演算)となるジオメトリ・オブジェクトを戻します。

パラメータ

geom1

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

geom2

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

OGCのGeoSPARQLの仕様も参照してください。

次の例では、中心が、2つの指定されたポリゴンの結合部分の内部にある米国下院議員選挙区ポリゴンを検出します。

SELECT name, cdist
FROM table(sem_match(
'PREFIX ogc: <http://www.opengis.net/ont/geosparql#>
 PREFIX ogcf: <http://www.opengis.net/def/function/geosparql/>
 PREFIX orageo: <http://xmlns.oracle.com/rdf/geo/>
 PREFIX pol: <http://www.rdfabout.com/rdf/schema/politico/>
 PREFIX usgovt: <http://www.rdfabout.com/rdf/schema/usgovt/>
 SELECT ?name ?cdist
 WHERE
 { ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER (ogcf:sfWithin(orageo:centroid(?cgeom), 
        ogcf:union(
          "Polygon((-83.6 34.1, -83.2 34.1, -83.2 34.5, -83.6 34.5, -83.6 34.1))"^^ogc:wktLiteral,
          "Polygon((-83.2 34.3, -83.0 34.3, -83.0 34.5, -83.2 34.5, -83.2 34.3))"^^ogc:wktLiteral))) } '
,sem_models('gov_all_vm'), null 
,null, null, null, ' ALLOW_DUP=T '));

B.2 Oracle固有の空間サポート用関数

この項では、Oracle固有の関数についてのリファレンス情報を提供します。

B.2.1 orageo:aggrCentroid

書式

orageo:aggrCentroid(geom : geomLiteral) : ogc:wktLiteral

説明

指定されたジオメトリ・オブジェクトのグループの中心であるジオメトリ・リテラルを戻します。(中心は「重心」とも呼ばれます。)

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

『Oracle Spatial and Graph開発者ガイド』のSDO_AGGR_CENTROID関数も参照してください。

次の例では、すべての米国下院議員選挙区ポリゴンの中心を検出します。

SELECT centroid
FROM table(sem_match(
'select (orageo:aggrCentroid(?cgeom) as ?centroid)
 {?cdist orageo:hasExactGeometry ?cgeom } '
,sem_models('gov_all_vm'), null 
,sem_aliases(
   sem_alias('usgovt','http://www.rdfabout.com/rdf/schema/usgovt/'),
   sem_alias('pol','http://www.rdfabout.com/rdf/schema/politico/'))
,null, null, ' ALLOW_DUP=T '));

B.2.2 orageo:aggrConvexHull

書式

orageo:aggrConvexhull(geom : geomLiteral) : ogc:wktLiteral

説明

指定されたジオメトリ・オブジェクトのグループの凸型であるジオメトリ・オブジェクトを戻します。(凸型とは、この関数の場合、ジオメトリ・オブジェクトを完全に囲む最小ポリゴンを作成するために、使用する直線の辺をできるだけ少なくした、ジオメトリ・オブジェクトのグループを完全に囲む単純な凸型のポリゴンです)。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

『Oracle Spatial and Graph開発者ガイド』のSDO_AGGR_CONVEXHULL関数も参照してください。

次の例では、すべての米国下院議員選挙区ポリゴンの凸型を検出します。

SELECT chull
FROM table(sem_match(
'select (orageo:aggrConvexhull(?cgeom) as ?chull)
 { 
   ?cdist orageo:hasExactGeometry ?cgeom } '
,sem_models('gov_all_vm'), null 
,sem_aliases(
   sem_alias('usgovt','http://www.rdfabout.com/rdf/schema/usgovt/'),
   sem_alias('pol','http://www.rdfabout.com/rdf/schema/politico/'))
,null, null, ' ALLOW_DUP=T '));

B.2.3 orageo:aggrMBR

書式

orageo:aggrMBR(geom : geomLiteral) : ogc:wktLiteral

説明

指定されたジオメトリ・オブジェクトのグループの最小境界矩形(MBR)であるジオメトリ・リテラルを戻します。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

『Oracle Spatial and Graph開発者ガイド』のSDO_AGGR_MBR関数も参照してください。

次の例では、すべての米国下院議員選挙区ポリゴンのMBRを検出します。

SELECT mbr
FROM table(sem_match(
'select (orageo:aggrMBR(?cgeom) as ?mbr)
 { 
   ?cdist orageo:hasExactGeometry ?cgeom } '
,sem_models('gov_all_vm'), null 
,sem_aliases(
   sem_alias('usgovt','http://www.rdfabout.com/rdf/schema/usgovt/'),
   sem_alias('pol','http://www.rdfabout.com/rdf/schema/politico/'))
,null, null, ' ALLOW_DUP=T '));

B.2.4 orageo:aggrUnion

書式

orageo:aggrUnion(geom : geomLiteral) : ogc:wktLiteral

説明

指定されたジオメトリ・オブジェクトのグループの位相的な和集合であるジオメトリ・オブジェクトを戻します。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

『Oracle Spatial and Graph開発者ガイド』のSDO_GEOM.SDO_UNION関数も参照してください。

次の例では、すべての米国下院議員選挙区ポリゴンの和集合を検出します。

SELECT u
FROM table(sem_match(
'select (orageo:aggrUnion(?cgeom) as ?u)
 { 
   ?cdist orageo:hasExactGeometry ?cgeom } '
,sem_models('gov_all_vm'), null 
,sem_aliases(
   sem_alias('usgovt','http://www.rdfabout.com/rdf/schema/usgovt/'),
   sem_alias('pol','http://www.rdfabout.com/rdf/schema/politico/'))
,null, null, ' ALLOW_DUP=T '));

B.2.5 orageo:area

書式

orageo:area(geom1 : geomLiteral, unit : Literal) : xsd:decimal

説明

指定された測定単位でgeom1の面積を戻します。

パラメータ

geom1

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

unit

測定単位(MDSYS.SDO_DIST_UNITS表のSDO_UNIT値を引用符で囲んだ文字列で、たとえば"unit=SQ_KM")を指定します。測定単位の仕様の詳細は、『Oracle Spatial and Graph開発者ガイド』の測定単位の項を参照してください。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

『Oracle Spatial and Graph開発者ガイド』のSDO_GEOM.SDO_AREA関数も参照してください。

次の例では、10,000平方kmを超える面積の米国下院議員選挙区ポリゴンを検出します。

SELECT name, cdist
FROM table(sem_match(
'{ ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER (orageo:area(?cgeom, "unit=SQ_KM") > 10000) }'
,sem_models('gov_all_vm'), null 
,sem_aliases(
   sem_alias('usgovt','http://www.rdfabout.com/rdf/schema/usgovt/'),
   sem_alias('pol','http://www.rdfabout.com/rdf/schema/politico/'))
,null, null, ' ALLOW_DUP=T '));

B.2.6 orageo:buffer

書式

orageo:buffer(geom1 : geomLiteral, distance : xsd:decimal, unit : Literal) : geomLiteral

説明

ジオメトリの周りまたは内部の、指定された距離にあるバッファ・ポリゴンを戻します。

パラメータ

geom1

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

distance

距離の値。距離の値。値が正の場合、バッファはgeom1の周りに生成され、値が負の場合(ポリゴンに対してのみ有効)、バッファはgeom1の内部に生成されます。

unit

測定単位(MDSYS.SDO_DIST_UNITS表のSDO_UNIT値を引用符で囲んだ文字列で、たとえば"unit=KM")を指定します。測定単位の仕様の詳細は、『Oracle Spatial and Graph開発者ガイド』の測定単位の項を参照してください。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

『Oracle Spatial and Graph開発者ガイド』のSDO_GEOM.SDO_BUFFERファンクションも参照してください。

次の例では、指定された点の周り100kmのバッファの内部にある米国下院議員選挙区ポリゴンを検出します。

SELECT name, cdist
FROM table(sem_match(
'{ # HINT0={LEADING(?cgeom)}
   ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER (
     orageo:relate(?cgeom, 
       orageo:buffer("POINT(-71.46444 42.7575)"^^orageo:WKTLiteral,
                     100, "unit=KM"),
      "mask=inside")) }'
,sem_models('gov_all_vm'), null 
,sem_aliases(
   sem_alias('usgovt','http://www.rdfabout.com/rdf/schema/usgovt/'),
   sem_alias('pol','http://www.rdfabout.com/rdf/schema/politico/'))
,null, null, ' ALLOW_DUP=T '));

B.2.7 orageo:centroid

書式

orageo:centroid(geom1 : geomLiteral) : geomLiteral

説明

geom1の中心である点ジオメトリを戻します。(中心は「重心」とも呼ばれます。)

パラメータ

geom1

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

複数のオブジェクトで構成される入力ジオメトリの場合、ジオメトリ・オブジェクトの各ポリゴンの面積によって結果が重み付けされます。ジオメトリ・オブジェクトにポリゴンおよび点が混在する場合、中心の計算では点が使用されません。ジオメトリ・オブジェクトがすべて点で構成される場合、それらの点は均等に重み付けされます。

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

『Oracle Spatial and Graph開発者ガイド』のSDO_GEOM.SDO_CENTROID関数も参照してください。

次の例では、中心が、指定された点の200km以内にある米国下院議員選挙区ポリゴンを検出します。

SELECT name, cdist
FROM table(sem_match(
'{ ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER (orageo:withinDistance(orageo:centroid(?cgeom), 
      "POINT(-71.46444 42.7575)"^^orageo:WKTLiteral,
      "distance=200 unit=KM")) } '
,sem_models('gov_all_vm'), null 
,sem_aliases(
   sem_alias('usgovt','http://www.rdfabout.com/rdf/schema/usgovt/'),
   sem_alias('pol','http://www.rdfabout.com/rdf/schema/politico/'))
,null, null, ' ALLOW_DUP=T '));

B.2.8 orageo:convexHull

書式

orageo:convexHull(geom1 : geomLiteral) : geomLiteral

説明

geom1の凸型部分を表現するポリゴンタイプ・オブジェクトを戻します。(凸型とは、ジオメトリ・オブジェクトを完全に囲む最小ポリゴンを作成するために、使用する直線の辺をできるだけ少なくした、ジオメトリ・オブジェクトを完全に囲む単純な凸型のポリゴンです)。

パラメータ

geom1

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

凸型は、複雑なジオメトリ・オブジェクトの近似値を取る場合に便利です。

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

『Oracle Spatial and Graph開発者ガイド』のSDO_GEOM.SDO_CONVEX_HULL関数も参照してください。

次の例では、凸型が、指定された点を含む米国下院議員選挙区ポリゴンを検出します。

SELECT name, cdist
FROM table(sem_match(
'{ ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER (orageo:relate(orageo:convexHull(?cgeom), 
      "POINT(-71.46444 42.7575)"^^orageo:WKTLiteral,
      "mask=contains")) } '
,sem_models('gov_all_vm'), null 
,sem_aliases(
   sem_alias('usgovt','http://www.rdfabout.com/rdf/schema/usgovt/'),
   sem_alias('pol','http://www.rdfabout.com/rdf/schema/politico/'))
,null, null, ' ALLOW_DUP=T '));

B.2.9 orageo:difference

書式

orageo:difference(geom1 : geomLiteral, geom2 : geomLiteral) : geomLiteral

説明

geom1geom2で位相的に差(MINUS演算)となるジオメトリ・オブジェクトを戻します。

パラメータ

geom1

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

geom2

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

『Oracle Spatial and Graph開発者ガイド』のSDO_GEOM.SDO_DIFFERENCE関数も参照してください。

次の例では、中心が、2つの指定されたポリゴンの差の内部にある米国下院議員選挙区ポリゴンを検出します。

SELECT name, cdist
FROM table(sem_match(
'{ ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER (orageo:relate(orageo:centroid(?cgeom), 
      orageo:difference(
                        "Polygon((-83.6 34.1, -83.2 34.1, -83.2 34.5, -83.6 34.5, -83.6 34.1))"^^orageo:WKTLiteral,
                        "Polygon((-83.2 34.3, -83.0 34.3, -83.0 34.5, -83.2 34.5, -83.2 34.3))"^^orageo:WKTLiteral),
      "mask=inside")) } '
,sem_models('gov_all_vm'), null 
,sem_aliases(
   sem_alias('usgovt','http://www.rdfabout.com/rdf/schema/usgovt/'),
   sem_alias('pol','http://www.rdfabout.com/rdf/schema/politico/'))
,null, null, ' ALLOW_DUP=T '));

B.2.10 orageo:distance

書式

orageo:distance(geom1 : geomLiteral, geom2 : geomLiteral, unit : Literal) : xsd:decimal

説明

指定された測定単位で、2つの点またはセグメントgeom1geom2の最短距離を戻します。

パラメータ

geom1

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

geom2

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

unit

測定単位(MDSYS.SDO_DIST_UNITS表のSDO_UNIT値を引用符で囲んだ文字列で、たとえば"unit=KM")を指定します。測定単位の仕様の詳細は、『Oracle Spatial and Graph開発者ガイド』の測定単位の項を参照してください。

使用上のノート

orageo:withinDistanceにはより効率的な索引ベースが実装されているため、可能な場合はorageo:distanceのかわりにorageo:withinDistanceを使用します。

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

『Oracle Spatial and Graph開発者ガイド』のSDO_GEOM.SDO_DISTANCE関数も参照してください。

次の例では、指定された点に最も近い10の米国下院議員選挙区を検出し、点からの距離によって順序付けします。

SELECT name, cdist
FROM table(sem_match(
'SELECT ?name ?cdist
 WHERE
 { # HINT0={LEADING(?cgeom)}
   ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER (orageo:nearestNeighbor(?cgeom, 
      "POINT(-71.46444 42.7575)"^^orageo:WKTLiteral,
      "sdo_num_res=10")) }
 ORDER BY ASC(orageo:distance(?cgeom,
                "POINT(-71.46444 42.7575)"^^orageo:WKTLiteral,
                "unit=KM"))'
,sem_models('gov_all_vm'), null 
,sem_aliases(
   sem_alias('usgovt','http://www.rdfabout.com/rdf/schema/usgovt/'),
   sem_alias('pol','http://www.rdfabout.com/rdf/schema/politico/'))
,null, null, ' ALLOW_DUP=T '))
ORDER BY sem$rownum;

B.2.11 orageo:getSRID

書式

orageo:getSRID(geom : geomLiteral) : xsd:anyURI

説明

geomのOracle空間参照システム(SRID) URIを戻します。

パラメータ

geom

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

次の例では、米国下院議員選挙区ポリゴンの空間参照システムURIを検出します。

SELECT csrid
FROM table(sem_match(
'SELECT (orageo:getSRID(?cgeom) AS ?csrid)
 WHERE
 { ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom }'
,sem_models('gov_all_vm'), null 
,sem_aliases(
   sem_alias('usgovt','http://www.rdfabout.com/rdf/schema/usgovt/'),
   sem_alias('pol','http://www.rdfabout.com/rdf/schema/politico/')
   )
,null, null, ' ALLOW_DUP=T '));

B.2.12 orageo:intersection

書式

orageo:intersection(geom1 : geomLiteral, geom2 : geomLiteral) : geomLiteral

説明

geom1geom2で位相的に共通部分(AND演算)となるジオメトリ・オブジェクトを戻します。

パラメータ

geom1

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

geom2

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

『Oracle Spatial and Graph開発者ガイド』のSDO_GEOM.SDO_INTERSECTIONファンクションも参照してください。

次の例では、中心が、2つの指定されたポリゴンの共通部分の内部にある米国下院議員選挙区ポリゴンを検出します。

SELECT name, cdist
FROM table(sem_match(
'{ ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER (orageo:relate(orageo:centroid(?cgeom), 
      orageo:intersection(
                          "Polygon((-83.6 34.1, -83.2 34.1, -83.2 34.5, -83.6 34.5, -83.6 34.1))"^^orageo:WKTLiteral,
                          "Polygon((-83.2 34.3, -83.0 34.3, -83.0 34.5, -83.2 34.5, -83.2 34.3))"^^orageo:WKTLiteral),
      "mask=inside")) } '
,sem_models('gov_all_vm'), null 
,sem_aliases(
   sem_alias('usgovt','http://www.rdfabout.com/rdf/schema/usgovt/'),
   sem_alias('pol','http://www.rdfabout.com/rdf/schema/politico/'))
,null, null, ' ALLOW_DUP=T '));

B.2.13 orageo:length

書式

orageo:length(geom1 : geomLiteral, unit : Literal) : xsd:decimal

説明

指定された測定単位でgeom1の長さ、つまり周囲を戻します。

パラメータ

geom1

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

unit

測定単位(MDSYS.SDO_DIST_UNITS表のSDO_UNIT値を引用符で囲んだ文字列で、たとえば"unit=KM")を指定します。測定単位の仕様の詳細は、『Oracle Spatial and Graph開発者ガイド』の測定単位の項を参照してください。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

『Oracle Spatial and Graph開発者ガイド』のSDO_GEOM.SDO_LENGTHファンクションも参照してください。

次の例では、1000kmを超える長さ(周囲)の米国下院議員選挙区ポリゴンを検出します。

SELECT name, cdist
FROM table(sem_match(
'{ ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER (orageo:legnth(?cgeom, "unit=KM") > 1000) }'
,sem_models('gov_all_vm'), null 
,sem_aliases(
   sem_alias('usgovt','http://www.rdfabout.com/rdf/schema/usgovt/'),
   sem_alias('pol','http://www.rdfabout.com/rdf/schema/politico/'))
,null, null, ' ALLOW_DUP=T '));

B.2.14 orageo:mbr

書式

orageo:mbr(geom1 : geomLiteral) : geomLiteral

説明

geom1の最小境界矩形、つまりgeom1を囲む単一の最小の矩形を戻します。

パラメータ

geom1

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

『Oracle Spatial and Graph開発者ガイド』のSDO_GEOM.SDO_MBRファンクションも参照してください。

次の例では、最小境界矩形が、指定された点を含む米国下院議員選挙区ポリゴンを検出します。

SELECT name, cdist
FROM table(sem_match(
'{ ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER (orageo:relate(orageo:mbr(?cgeom), 
      "POINT(-71.46444 42.7575)"^^orageo:WKTLiteral,
      "mask=contains")) } '
,sem_models('gov_all_vm'), null 
,sem_aliases(
   sem_alias('usgovt','http://www.rdfabout.com/rdf/schema/usgovt/'),
   sem_alias('pol','http://www.rdfabout.com/rdf/schema/politico/'))
,null, null, ' ALLOW_DUP=T '));

B.2.15 orageo:nearestNeighbor

書式

orageo:nearestNeighbor(geom1:  geomLiteral, geom2 : geomLiteral, param : Literal) : xsd:boolean

説明

geom1geom2の最も近い隣接である場合(設定される最も近い隣接のサイズはparamによって指定されます)、trueを戻し、そうでない場合はfalseを戻します。

パラメータ

geom1

ジオメトリ・オブジェクト。問合せ変数で指定します。

geom2

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

param

演算子の処理を指定します。使用可能なキーワードと値のペアの詳細は、「使用上のノート」を参照してください。

使用上のノート

paramパラメータで使用可能なキーワードと値のペアは次のとおりです。

  • distance=nには、最近傍探索における最大許容距離を指定します。

  • sdo_num_res=nには、最近傍探索におけるセットのサイズを指定します。

  • unit=unitには、distance値で使用する測定単位を指定します。値を指定しない場合、データに関連付けられている測定単位が使用されます。

geom1は、ローカル変数(つまり、orageo:nearestNeighbor空間フィルタを含む基本的なグラフ・パターンに出現する変数)である必要があります。

問合せが、?varに対する制限的なorageo:relate空間フィルタを含む場合は、'LEADING(?var)' HINT0ヒントを使用することをお薦めします。

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

『Oracle Spatial and Graph開発者ガイド』のSDO_NN演算子も参照してください。

次の例では、指定された点に最も近い10の米国下院議員選挙区を検出します。

SELECT name, cdist
FROM table(sem_match(
'{ # HINT0={LEADING(?cgeom)}
   ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER (orageo:nearestNeighbor(?cgeom, 
      "POINT(-71.46444 42.7575)"^^orageo:WKTLiteral,
      "sdo_num_res=10")) } '
,sem_models('gov_all_vm'), null 
,sem_aliases(
   sem_alias('usgovt','http://www.rdfabout.com/rdf/schema/usgovt/'),
   sem_alias('pol','http://www.rdfabout.com/rdf/schema/politico/'))
,null, null, ' ALLOW_DUP=T '));

B.2.16 orageo:relate

書式

orageo:relate(geom1:  geomLiteral, geom2 : geomLiteral, param : Literal) : xsd:boolean

説明

geom1geom2paramパラメータによって指定される空間的な位相関係を満たす場合、trueを戻し、そうでない場合はfalseを戻します。

パラメータ

geom1

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

geom2

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

param

チェックするマスク関係のリストを指定します。「使用上のノート」のキーワードのリストを参照してください。

使用上のノート

次のparam値(マスク関係)をテストできます。

  • ANYINTERACT: オブジェクトが非接続ではない場合にTRUEを戻します。

  • CONTAINS: 2番目のオブジェクトが完全に最初のオブジェクト内にあり、オブジェクト境界が触れていない場合、TRUEを戻します。それ以外の場合は、FALSEを戻します。

  • COVEREDBY: 最初のオブジェクトが完全に2番目のオブジェクト内にあり、オブジェクト境界が1つ以上の点で触れている場合、TRUEを戻します。それ以外の場合は、FALSEを戻します。

  • COVERS: 2番目のオブジェクトが完全に最初のオブジェクト内にあり、オブジェクト境界が1つ以上の場所で触れている場合、TRUEを戻します。それ以外の場合は、FALSEを戻します。

  • DISJOINT: オブジェクトが共通の境界点や内部点を持たない場合、TRUEを戻します。それ以外の場合は、FALSEを戻します。

  • EQUAL: オブジェクトが境界と内部のすべての点(オブジェクト内のすべての穴を含む)を共有している場合は、TRUEを戻します。それ以外の場合は、FALSEを戻します。

  • INSIDE: 最初のオブジェクトが完全に2番目のオブジェクト内にあり、オブジェクト境界が触れていない場合、TRUEを戻します。それ以外の場合は、FALSEを戻します。

  • ON: 線(第1オブジェクト)の境界および内部が完全にポリゴン(第2オブジェクト)の境界上に存在する場合にONを戻し、そうでない場合はFALSEを戻します。

  • OVERLAPBDYDISJOINT: オブジェクトが重なっているが、その境界は相互作用していない場合、TRUEを戻します。それ以外の場合は、FALSEを戻します。

  • OVERLAPBDYINTERSECT: オブジェクトが重なっており、その境界が1つ以上の場所で相互作用している場合、TRUEを戻します。それ以外の場合は、FALSEを戻します。

  • TOUCH: 2つのオブジェクトが共通の境界点を共有するが、内部点は共有しない場合、TRUEを戻します。それ以外の場合は、FALSEを戻します。

paramの値は、論理ブール演算子ORを使用して組み合せることができます。たとえば、ジオメトリ間の関係がINSIDEまたはTOUCHあるいはINSIDEとTOUCHの両方である場合、「INSIDE + TOUCH」はTRUEを戻し、ジオメトリ間の関係がINSIDEまたはTOUCHのいずれでもない場合、FALSEを戻します。

問合せ変数と定数ジオメトリを使用してorageo:relateをコールする場合は、常に、問合せ変数を1番目のパラメータとして、定数ジオメトリを2番目のパラメータとして使用します。

最適なパフォーマンスを得るには、geom1は、ローカル変数(つまり、orageo:relate空間フィルタを含む基本的なグラフ・パターンに出現する変数)である必要があります。

問合せが、?varに対する制限的なorageo:relate空間フィルタを含む場合は、'LEADING(?var)' HINT0ヒントを使用することをお薦めします。

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

『Oracle Spatial and Graph開発者ガイド』のSDO_RELATE演算子も参照してください。

次の例では、指定された点を含む米国下院議員選挙区を検出します。

SELECT name, cdist
FROM table(sem_match(
'{ # HINT0={LEADING(?cgeom)}
   ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER (orageo:relate(?cgeom, 
      "POINT(-71.46444 42.7575)"^^orageo:WKTLiteral,
      "mask=contains")) } '
,sem_models('gov_all_vm'), null 
,sem_aliases(
   sem_alias('usgovt','http://www.rdfabout.com/rdf/schema/usgovt/'),
   sem_alias('pol','http://www.rdfabout.com/rdf/schema/politico/'))
,null, null, ' ALLOW_DUP=T '
));

B.2.17 orageo:sdoDistJoin

書式

orageo:sdoDistJoin(geom1 : geomLiteral, geom2 : geomLiteral, param : Literal) : xsd:boolean

説明

2つのジオメトリ間の距離に基づいて空間結合を実行します。geom1geom2間の距離がparamで指定された一定の値以内である場合はtrueを戻し、それ以外の場合はfalseを戻します。

パラメータ

geom1

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

geom2

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

param

距離の値と、距離ベースの空間結合に使用する単位を指定します。距離の値は、関連する空間索引の許容値に加算されます。たとえば、"distance=100 and unit=m"が許容値10mとともに使用される場合、2つのジオメトリ間の距離が110m未満であれば、orageo:sdoDistJoinはtrueを戻します。

使用上のノート

2つの大規模なジオメトリ・コレクション間で距離ベースの空間結合を実行する場合は、orageo:sdoDistJoinを使用してください。1つの小規模なジオメトリ・コレクションと1つの大規模なジオメトリ・コレクション間で距離ベースの空間結合を実行する場合、最初の引数として小規模なジオメトリ・コレクションを指定してorageo:withinDistanceを起動すると、通常、orageo:sdoDistJoinより高いパフォーマンスとなります。

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

『Oracle Spatial and Graph開発者ガイド』のSDO_JOIN演算子も参照してください。

次の例では、互いに100m以内にある米国下院議員選挙区ポリゴンのペアを検出します。

SELECT cdist1, cdist2
FROM table(sem_match(
'{ ?cdist1 orageo:hasExactGeometry ?cgeom1 .
   ?cdist2 orageo:hasExactGeometry ?cgeom2 
   FILTER (orageo:sdoDistJoin(?cgeom1, ?cgeom2, 
      "distance=100 unit=m")) } '
,sem_models('gov_all_vm'), null 
,sem_aliases(
   sem_alias('usgovt','http://www.rdfabout.com/rdf/schema/usgovt/'),
   sem_alias('pol','http://www.rdfabout.com/rdf/schema/politico/'))
,null, null, ' ALLOW_DUP=T '
));

B.2.18 orageo:sdoJoin

書式

orageo:sdoJoin(geom1 : geomLiteral, geom2 : geomLiteral, param : Literal) : xsd:boolean

説明

位相関係に基づいて空間結合を実行します。geom1geom2paramによって指定される空間的な関係を満たす場合、trueを戻し、そうでない場合はfalseを戻します。

パラメータ

geom1

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

geom2

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

param

チェックするマスク関係のリストを指定します。位相関係を指定します。有効な値は'mask=<value>'です。<value>は、SDO_RELATE演算子(TOUCH、OVERLAPBDYDISJOINT、OVERLAPBDYINTERSECT、EQUAL、INSIDE、COVEREDBY、CONTAINS、COVERS、ANYINTERACT、ON)について有効な1つ以上のマスク値です。複数のマスクが論理ブール演算子ORで結合されます("mask=inside+touch"など)。

使用上のノート

2つの大規模なジオメトリ・コレクション間で空間結合を実行する場合は、orageo:sdoJoinを使用してください。1つの小規模なジオメトリ・コレクションと1つの大規模なジオメトリ・コレクション間で空間結合を実行する場合、最初の引数として小規模なジオメトリ・コレクションを指定してorageo:relateを起動すると、通常、orageo:sdoJoinより高いパフォーマンスとなります。

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

『Oracle Spatial and Graph開発者ガイド』のSDO_JOIN演算子も参照してください。

次の例では、空間相互作用がある米国下院議員選挙区ポリゴンのペアを検出します。

SELECT cdist1, cdist2
FROM table(sem_match(
'{ ?cdist1 orageo:hasExactGeometry ?cgeom1 .
   ?cdist2 orageo:hasExactGeometry ?cgeom2 
   FILTER (orageo:sdoJoin(?cgeom1, ?cgeom2, 
      "mask=anyinteract")) } '
,sem_models('gov_all_vm'), null 
,sem_aliases(
   sem_alias('usgovt','http://www.rdfabout.com/rdf/schema/usgovt/'),
   sem_alias('pol','http://www.rdfabout.com/rdf/schema/politico/'))
,null, null, ' ALLOW_DUP=T '
));

B.2.19 orageo:union

書式

orageo:union(geom1 : geomLiteral, geom2 : geomLiteral) : geomLiteral

説明

geom1geom2で位相的に結合部分(OR演算)となるジオメトリ・オブジェクトを戻します。

パラメータ

geom1

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

geom2

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

『Oracle Spatial and Graph開発者ガイド』のSDO_GEOM.SDO_UNION関数も参照してください。

次の例では、中心が、2つの指定されたポリゴンの結合部分の内部にある米国下院議員選挙区ポリゴンを検出します。

SELECT name, cdist
FROM table(sem_match(
'{ ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER (orageo:relate(orageo:centroid(?cgeom), 
      orageo:union("Polygon((-83.6 34.1, -83.2 34.1, -83.2 34.5, -83.6 34.5, -83.6 34.1))"^^orageo:WKTLiteral,
                   "Polygon((-83.2 34.3, -83.0 34.3, -83.0 34.5, -83.2 34.5, -83.2 34.3))"^^orageo:WKTLiteral),
      "mask=inside")) } '
,sem_models('gov_all_vm'), null 
,sem_aliases(
   sem_alias('usgovt','http://www.rdfabout.com/rdf/schema/usgovt/'),
   sem_alias('pol','http://www.rdfabout.com/rdf/schema/politico/'))
,null, null, ' ALLOW_DUP=T '));

B.2.20 orageo:withinDistance

書式

orageo:withinDistance(geom1 : geomLiteral, geom2 : geomLiteral, distance : xsd:decimal, unit : Literal) : xsd:boolean

説明

geom1geom2の間の距離がunitで測定されるdistance以下である場合、trueを戻し、そうでない場合はfalseを戻します。

パラメータ

geom1

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

geom2

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

distance

距離の値。

unit

測定単位(MDSYS.SDO_DIST_UNITS表のSDO_UNIT値を引用符で囲んだ文字列で、たとえば"unit=KM")を指定します。測定単位の仕様の詳細は、『Oracle Spatial and Graph開発者ガイド』の測定単位の項を参照してください。

使用上のノート

問合せ変数と定数ジオメトリを使用してこの関数をコールする場合は、常に、問合せ変数を1番目のパラメータとして、定数ジオメトリを2番目のパラメータとして使用します。

最適なパフォーマンスを得るには、geom1は、ローカル変数(つまり、orageo:withinDistance空間フィルタを含む基本的なグラフ・パターンに出現する変数)である必要があります。

問合せが、?varに対する制限的なorageo:withinDistance空間フィルタを含む場合は、'LEADING(?var)' HINT0ヒントを使用することをお薦めします。

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

『Oracle Spatial and Graph開発者ガイド』のSDO_WITHIN_DISTANCE演算子も参照してください。

次の例では、指定された点の100km以内にある米国下院議員選挙区を検出します。

SELECT name, cdist
FROM table(sem_match(
'{ # HINT0={LEADING(?cgeom)}
   ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER (orageo:withinDistance(?cgeom, 
      "POINT(-71.46444 42.7575)"^^orageo:WKTLiteral,
      100, "KM")) } '
,sem_models('gov_all_vm'), null 
,sem_aliases(
   sem_alias('usgovt','http://www.rdfabout.com/rdf/schema/usgovt/'),
   sem_alias('pol','http://www.rdfabout.com/rdf/schema/politico/'))
,null, null, ' ALLOW_DUP=T '));

B.2.21 orageo:xor

書式

orageo:xor(geom1 : geomLiteral, geom2 : geomLiteral) : geomLiteral

説明

geom1geom2で位相的に排他的論理和(XOR演算)となるジオメトリ・オブジェクトを戻します。

パラメータ

geom1

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

geom2

ジオメトリ・オブジェクト。問合せ変数または定数geomLiteralの値で指定します。

使用上のノート

RDFでの空間データの表現、索引付けおよび問合せの詳細は、「空間のサポート」を参照してください。

『Oracle Spatial and Graph開発者ガイド』のSDO_GEOM.SDO_XOR関数も参照してください。

次の例では、中心が、2つの指定されたポリゴンの対称差の内部にある米国下院議員選挙区ポリゴンを検出します。

SELECT name, cdist
FROM table(sem_match(
'{ ?person usgovt:name ?name .
   ?person pol:hasRole ?role .
   ?role pol:forOffice ?office .
   ?office pol:represents ?cdist .
   ?cdist orageo:hasExactGeometry ?cgeom 
   FILTER (orageo:relate(orageo:centroid(?cgeom), 
      orageo:xor(
           "Polygon((-83.6 34.1, -83.2 34.1, -83.2 34.5, -83.6 34.5, -83.6 34.1))"^^orageo:WKTLiteral,
           "Polygon((-83.2 34.3, -83.0 34.3, -83.0 34.5, -83.2 34.5, -83.2 34.3))"^^orageo:WKTLiteral),
      "mask=inside")) } '
,sem_models('gov_all_vm'), null 
,sem_aliases(
   sem_alias('usgovt','http://www.rdfabout.com/rdf/schema/usgovt/'),
   sem_alias('pol','http://www.rdfabout.com/rdf/schema/politico/'))
,null, null, ' ALLOW_DUP=T '));