http://franz.com/ns/allegrograph/5.0/geo/nd/fn#haversineLatLonLatLon

<http://franz.com/ns/allegrograph/5.0/geo/nd/fn#haversineLatLonLatLon>
( lat1 lon1 lat2 lon2 &optional units )

Returns the haversine distance between <lat1, lon1> and <lat2, lon2>. lat1, lon1, lat2, and lon2 specify two points in spherical coordinates and must be bound to numeric values.

For example:

PREFIX ndfn: <http://franz.com/ns/allegrograph/5.0/geo/nd/fn#>
PREFIX : <http://franz.com/ns/keyword#>
SELECT * {
bind(ndfn:haversineLatLonLatLon(38.889, -77.035, 38.889, -77.050, :km) as ?distance)
}

An optional fifth argument may be http://franz.com/ns/keyword#km (default) or http://franz.com/ns/keyword#miles to specify the units of the result.

http://franz.com/ns/allegrograph/5.0/geo/nd/fn#haversineLatLonLoc

<http://franz.com/ns/allegrograph/5.0/geo/nd/fn#haversineLatLonLoc>
( lat lon loc &optional units )

Returns the haversine distance between <lat, lon> and the location specified by the nD encoded literal loc. lat and lon must be bound to numeric values, and the datatype encoding of loc must have one :latitude and one :longitude type ordinate.

For example:

PREFIX ndfn: <http://franz.com/ns/allegrograph/5.0/geo/nd/fn#>
PREFIX ex: <http://ex.com/>
PREFIX : <http://franz.com/ns/keyword#>
SELECT ?distance {
ex:WashingtonMonument ex:location ?loc .
bind(ndfn:haversineLatLonLoc(38.889, -77.035, ?loc, :miles) as ?distance)
}

An optional fourth argument may be http://franz.com/ns/keyword#km (default) or http://franz.com/ns/keyword#miles to specify the units of the result.

http://franz.com/ns/allegrograph/5.0/geo/nd/fn#haversineLocLoc

<http://franz.com/ns/allegrograph/5.0/geo/nd/fn#haversineLocLoc>
( loc1 loc2 &optional units )

Returns the haversine distance between loc1 and loc2 which must be nD encoded literals.. The nD encoding datatypes of loc1 and loc2 need not be the same, but each must have one :latitude and one :longitude type ordinate.

For example:

PREFIX ndfn: <http://franz.com/ns/allegrograph/5.0/geo/nd/fn#>
PREFIX ex: <http://ex.com/>
SELECT ?distance {
ex:WashingtonMonument ex:location ?loc1 .
ex:LincolnMemorial ex:location ?loc2 .
bind(ndfn:haversineLocLoc(?loc1, ?loc2) as ?distance)
}

An optional third argument may be http://franz.com/ns/keyword#km (default) or http://franz.com/ns/keyword#miles to specify the units of the result.

http://franz.com/ns/allegrograph/5.0/geo/nd/fn#ordinateValue

<http://franz.com/ns/allegrograph/5.0/geo/nd/fn#ordinateValue>
( value name )

Returns the value of a named ordinate from an n-Dimensionally encoded literal.

For example, if ?point is bound to an n-Dimensionally encoded literal, then the following expression would retrieve the value of the ordinate named latitude:

  bind(ndfn:ordinateValue(?point, :latitude) as ?lat) 

Note that this assumes the usual default namespaces and that ?point has been bound previously in the query.

http://franz.com/ns/allegrograph/5.0/geo/nd/fn#ordinatesToValue

<http://franz.com/ns/allegrograph/5.0/geo/nd/fn#ordinatesToValue>
( value &rest keys-and-values )

Encodes a list of keys and values into an n-Dimensional literal.

For example, if http://example.com/phone-calls#phoneCallTargetLocation is an n-Dimensional subtype defined with time, latitude, and longitude, then the following expression would encode the tuple into the literal bound to ?plist:

bind(ndfn:ordinatesToValue(
<http://example.com/phone-calls#phoneCallTargetLocation>,
:time, ?time, :longitude, 37.8, :longitude, -122.5) as ?plist)

Note that this assumes the usual default namespaces and that ?time has been bound previously in the query.

Notes

The following namespace abbreviations are used:

The SPARQL magic properties reference has additional information on using AllegroGraph magic properties and functions.