Skip to content

Commit 841fc78

Browse files
committed
Updated ollama macros; added cosSimilarity function (via javascript).
1 parent 4f51eb6 commit 841fc78

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

macros/macros-ollama.ttl

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ PREFIX eg: <http://www.example.org/>
22
PREFIX udf: <https://w3id.org/aksw/norse#udf.>
33
PREFIX url: <http://jsa.aksw.org/fn/url/>
44
PREFIX sh: <http://www.w3.org/ns/shacl#>
5+
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
6+
PREFIX norse: <https://w3id.org/aksw/norse#>
57
PREFIX ollama: <https://w3id.org/aksw/norse#ollama.>
68

79
#
@@ -73,4 +75,11 @@ ollama:embed
7375
""" "url" "model" "prompt") ;
7476
.
7577

78+
norse:json.cosSimilarity
79+
rdfs:comment "Computes the cosinus similarity (1=similar, -1 not similar) between two vectors represented as JSON arrays of numbers. Uses components starting from 0 up to that of the shorter vector." ;
80+
sh:prefixes eg:prefixMapping ;
81+
udf:simpleDefinition ("""
82+
norse:json.js('(v1, v2) => { var v1Sq = 0; var v2Sq = 0; var dot = 0; for (i = 0; i < Math.min(v1.length, v2.length); ++i) { v1Sq += v1[i] * v1[i]; v2Sq += v2[i] * v2[i]; dot += v1[i] * v2[i]; } v1Len = Math.sqrt(v1Sq); v2Len = Math.sqrt(v2Sq); return dot / (v1Len * v2Len); }', ?v1, ?v2)
83+
""" "v1" "v2") ;
84+
.
7685

0 commit comments

Comments
 (0)