diff --git a/.gitignore b/.gitignore
index 7edaead..f5f57c6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,44 +4,11 @@
### Rider ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
-
-# User-specific stuff
-.idea/**/workspace.xml
-.idea/**/tasks.xml
-.idea/**/usage.statistics.xml
-.idea/**/dictionaries
-.idea/**/shelf
-
-# Generated files
-.idea/**/contentModel.xml
-
-# Sensitive or high-churn files
-.idea/**/dataSources/
-.idea/**/dataSources.ids
-.idea/**/dataSources.local.xml
-.idea/**/sqlDataSources.xml
-.idea/**/dynamic.xml
-.idea/**/uiDesigner.xml
-.idea/**/dbnavigator.xml
-
-# Gradle
-.idea/**/gradle.xml
-.idea/**/libraries
-
-# Gradle and Maven with auto-import
-# When using Gradle or Maven with auto-import, you should exclude module files,
-# since they will be recreated, and may cause churn. Uncomment if using
-# auto-import.
-# .idea/modules.xml
-# .idea/*.iml
-# .idea/modules
+.idea/
# CMake
cmake-build-*/
-# Mongo Explorer plugin
-.idea/**/mongoSettings.xml
-
# File-based project format
*.iws
@@ -54,18 +21,12 @@ out/
# JIRA plugin
atlassian-ide-plugin.xml
-# Cursive Clojure plugin
-.idea/replstate.xml
-
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
-# Editor-based Rest Client
-.idea/httpRequests
-
# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser
@@ -120,7 +81,6 @@ Assets/StreamingAssets/crashlytics-build.properties
# Temp file
*~
-.idea/.idea.UnityInterface
# Exclude the Generated Stuff
!Generated/
diff --git a/.idea/.gitignore b/.idea/.gitignore
deleted file mode 100644
index e69de29..0000000
diff --git a/.idea/.idea.CineastUnityInterface/.idea/encodings.xml b/.idea/.idea.CineastUnityInterface/.idea/encodings.xml
deleted file mode 100644
index df87cf9..0000000
--- a/.idea/.idea.CineastUnityInterface/.idea/encodings.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/.idea/.idea.CineastUnityInterface/.idea/indexLayout.xml b/.idea/.idea.CineastUnityInterface/.idea/indexLayout.xml
deleted file mode 100644
index 2220d4b..0000000
--- a/.idea/.idea.CineastUnityInterface/.idea/indexLayout.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
- Library/PackageCache/com.unity.ads@2.0.8
- Library/PackageCache/com.unity.analytics@3.2.2
- Library/PackageCache/com.unity.collab-proxy@1.2.15
- Library/PackageCache/com.unity.package-manager-ui@2.0.7
- Library/PackageCache/com.unity.purchasing@2.0.3
- Library/PackageCache/com.unity.textmeshpro@1.4.1
- Packages
- ProjectSettings
-
-
- .git
- .idea
- Library
- Logs
- Temp
- bin
- obj
-
-
-
\ No newline at end of file
diff --git a/.idea/.idea.CineastUnityInterface/.idea/modules.xml b/.idea/.idea.CineastUnityInterface/.idea/modules.xml
deleted file mode 100644
index ac5f7a3..0000000
--- a/.idea/.idea.CineastUnityInterface/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/.idea.CineastUnityInterface/.idea/projectSettingsUpdater.xml b/.idea/.idea.CineastUnityInterface/.idea/projectSettingsUpdater.xml
deleted file mode 100644
index 7f5e4fe..0000000
--- a/.idea/.idea.CineastUnityInterface/.idea/projectSettingsUpdater.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/.idea.CineastUnityInterface/.idea/vcs.xml b/.idea/.idea.CineastUnityInterface/.idea/vcs.xml
deleted file mode 100644
index 593e10b..0000000
--- a/.idea/.idea.CineastUnityInterface/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/.idea.CineastUnityInterface/riderModule.iml b/.idea/.idea.CineastUnityInterface/riderModule.iml
deleted file mode 100644
index cea4207..0000000
--- a/.idea/.idea.CineastUnityInterface/riderModule.iml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/README.md b/README.md
index 0a986e7..aaa1bec 100644
--- a/README.md
+++ b/README.md
@@ -1,89 +1,51 @@
-# README
-
-**This is in very early development. Do not use in production.**
-
-## Features
-
-This is a Unity3d endpoint for vitrivr's Cineast RESTful API.
+# Cineast Unity Interface
+A Unity Package Manager package for the Cineast OpenAPI RESTful API.
See [Cineast](https://github.com/vitrivr/cineast) for further API informations
## Prerequisites
-This package provides a Unity3d endpoint for vitrivr's Cineast RESTful API.
-Thus, a running cineast instance is a requirement for this package to work.
+This package provides a Unity endpoint for vitrivr's Cineast RESTful API.
+Thus, a running Cineast instance is a requirement for this package to work.
For a guide on how to setup cineast, please see [Cineast's Github page](https://github.com/vitrivr/cineast).
-## Usage -- Unity3d
+## Usage -- Unity
-To use this package in unity, the `manifest.json` has to be expanded by the following entry:
+To use this package in Unity, the `manifest.json` has to be expanded by the following entry:
```json
"com.vitrivr.unityinterface.cineastapi": "https://github.com/vitrivr/CineastUnityInterface.git"
```
-The Unity Package Manager ( _upm_ ) will take care of downloading and linking this package.
+The Unity Package Manager (_upm_) will take care of downloading and linking this package.
### Versions
-Besides using [semver]() to specify the package's version, there are two _upm_ packages available:
-
-* `#release` -- The latest released version of the package (semver version Major.Minor.Path)
-* `#latest` -- Development versions of the package (semver version Major.Minor.Path-SNAPSHOT)
-
-In most of the cases you want to have the `#release` version. In case you would like to have the development version,
-use this `manifest.json` entry:
-
-```json
-"com.vitrivr.unityinterface.cineastapi": "https://github.com/vitrivr/UnityInterface.git#latest"
-```
-
-The package was tested with Unity 2018.4 LTS.
-
-### Example
-
-_TODO_
-
-### Documentation
-
-For the underlying API documentation, please refer to `Generated/README.md` and `Generated/docs/`.
+This package uses [semver](https://semver.org). It is recommended to manually specify a version in the packages manifest entry.
+The package was tested with Unity 2020.3 LTS.
## Usage -- Developer
This is a Unity3d project setup to easily develop (and test) the Unity3d Cineast Interface.
-We strongly recommend cloning this repository into the `Assets` directory of a Unity shell project to make development and generation of `.meta` files easier.
-To allow the shell project to function without compile errors, it is currently necessary to include the `jillejr.newtonsoft.json-for-unity` package as a workaround. Add the following to the root object in `manifest.json` on the same level as `dependencies`:
-```json
-"scopedRegistries": [
- {
- "name": "Packages from jillejr",
- "url": "https://npm.cloudsmith.io/jillejr/newtonsoft-json-for-unity/",
- "scopes": ["jillejr"]
- }
-]
-```
-And add the following line to the dependencies: `"jillejr.newtonsoft.json-for-unity": "12.0.201"`
-To actively develop this package, follow these steps:
+We strongly recommend cloning this repository into the `Packages` directory of a Unity shell project to make development and generation of `.meta` files easier.
1. If necessary, update the OpenApi Specs (OAS) of vitrivr. Reade more in [Generate OpenApi Dependencies](#generate-openapi-dependencies).
2. To test your changes and generate the **required** `.meta` files for any files you may have added, import the root directory of this repository into a Unity project as a local package with the `file:` method.
3. Do not forget to create a PR of your work to include it in the main branch.
-### Generate OpenApi Dependencies
+### Generate OpenAPI Dependencies
Follow these steps to generate / update the cineast OAS. We provide the latest generation in this repo for convenience.
For unix systems, the build requires an installation of the [.NET Core SDK](https://dotnet.microsoft.com/), [wget](https://www.gnu.org/software/wget/) and [mono](https://www.mono-project.com). Mono and wget are available through [homebrew](https://brew.sh) on mac.
-1. Have an updated, running cineast api.
-2. Issue the following `gradle` command:
+1. Issue the following `gradle` command:
```
- $> ./gradlew clean deploy -Poas="http://cineast-host:port/openapi-specs" tidy
+ $> ./gradlew clean deploy tidy
```
- Replace `cineast-host:port` with your running cineast api. Most propably this will be the default (`localhost:4567`), in this case you can ommit the argument.
-3. (Android Only) Delete the file `Runtime/Libs/Newtonsoft.Json.dll`.
-4. Generate the **required** `.meta` files for generated files by importing the root directory of this repository into a Unity project as a local package with the `file:` method.
+2. (Android Only) Delete the file `Runtime/Libs/Newtonsoft.Json.dll`.
+3. Generate the **required** `.meta` files for generated files by importing the root directory of this repository into a Unity project as a local package with the `file:` method.
> _Notice_
> These steps were tested under Windows 10 64bit, using OpenJDK 11 and Gradle 6.1.1. The publish script was tested with python 3.8.2.
@@ -105,4 +67,4 @@ This work is licensed under the MIT open source license. Please refer to the LIC
## Credits
* Credits go to @neogeek, his [Tutorial](https://github.com/neogeek/unity-package-example) lead to the transformation to a proper _upm_ package.
- * Credits go to @SamuelBoerlin, his [first steps](https://github.com/SamuelBoerlin/Cineast-OpenAPI-Implementation) with Cienast and OpenApi helped a lot.
+ * Credits go to @SamuelBoerlin, his [first steps](https://github.com/SamuelBoerlin/Cineast-OpenAPI-Implementation) with Cineast and OpenAPI helped a lot.
diff --git a/Runtime/Libs/Org.Vitrivr.CineastApi.dll b/Runtime/Libs/Org.Vitrivr.CineastApi.dll
index bdc3664..0a2a7bb 100755
Binary files a/Runtime/Libs/Org.Vitrivr.CineastApi.dll and b/Runtime/Libs/Org.Vitrivr.CineastApi.dll differ
diff --git a/Runtime/Libs/Org.Vitrivr.CineastApi.xml b/Runtime/Libs/Org.Vitrivr.CineastApi.xml
index aa61fc8..5287e78 100644
--- a/Runtime/Libs/Org.Vitrivr.CineastApi.xml
+++ b/Runtime/Libs/Org.Vitrivr.CineastApi.xml
@@ -4,6 +4,73 @@
Org.Vitrivr.CineastApi
+
+
+ TemporalObject
+
+
+
+
+ Initializes a new instance of the class.
+
+ segments.
+ objectId.
+ score.
+
+
+
+ Gets or Sets Segments
+
+
+
+
+ Gets or Sets ObjectId
+
+
+
+
+ Gets or Sets Score
+
+
+
+
+ Returns the string presentation of the object
+
+ String presentation of the object
+
+
+
+ Returns the JSON string presentation of the object
+
+ JSON string presentation of the object
+
+
+
+ Returns true if objects are equal
+
+ Object to be compared
+ Boolean
+
+
+
+ Returns true if TemporalObject instances are equal
+
+ Instance of TemporalObject to be compared
+ Boolean
+
+
+
+ Gets the hash code
+
+ Hash code
+
+
+
+ To validate all properties of the instance
+
+ Validation context
+ Validation Result
+
MediaObjectDescriptor
@@ -49,20 +116,21 @@
Gets or Sets Mediatype
-
+
Initializes a new instance of the class.
- objectId.
+ objectid.
name.
path.
mediatype.
exists.
+ objectId.
contentURL.
-
+
- Gets or Sets ObjectId
+ Gets or Sets Objectid
@@ -80,6 +148,11 @@
Gets or Sets Exists
+
+
+ Gets or Sets ObjectId
+
+
Gets or Sets ContentURL
@@ -178,6 +251,88 @@
Validation context
Validation Result
+
+
+ MetadataAccessSpecification
+
+
+
+
+ Defines Type
+
+
+
+
+ Enum OBJECT for value: OBJECT
+
+
+
+
+ Enum SEGMENT for value: SEGMENT
+
+
+
+
+ Gets or Sets Type
+
+
+
+
+ Initializes a new instance of the class.
+
+ type.
+ domain.
+ key.
+
+
+
+ Gets or Sets Domain
+
+
+
+
+ Gets or Sets Key
+
+
+
+
+ Returns the string presentation of the object
+
+ String presentation of the object
+
+
+
+ Returns the JSON string presentation of the object
+
+ JSON string presentation of the object
+
+
+
+ Returns true if objects are equal
+
+ Object to be compared
+ Boolean
+
+
+
+ Returns true if MetadataAccessSpecification instances are equal
+
+ Instance of MetadataAccessSpecification to be compared
+ Boolean
+
+
+
+ Gets the hash code
+
+ Hash code
+
+
+
+ To validate all properties of the instance
+
+ Validation context
+ Validation Result
+
ExtractionContainerMessage
@@ -268,6 +423,11 @@
Enum QRSIMILARITY for value: QR_SIMILARITY
+
+
+ Enum QRTEMPORAL for value: QR_TEMPORAL
+
+
Gets or Sets MessageType
@@ -324,6 +484,66 @@
Validation context
Validation Result
+
+
+ QueryStage
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ terms (required).
+
+
+
+ Gets or Sets Terms
+
+
+
+
+ Returns the string presentation of the object
+
+ String presentation of the object
+
+
+
+ Returns the JSON string presentation of the object
+
+ JSON string presentation of the object
+
+
+
+ Returns true if objects are equal
+
+ Object to be compared
+ Boolean
+
+
+
+ Returns true if QueryStage instances are equal
+
+ Instance of QueryStage to be compared
+ Boolean
+
+
+
+ Gets the hash code
+
+ Hash code
+
+
+
+ To validate all properties of the instance
+
+ Validation context
+ Validation Result
+
MediaSegmentQueryResult
@@ -414,6 +634,11 @@
Enum QRSIMILARITY for value: QR_SIMILARITY
+
+
+ Enum QRTEMPORAL for value: QR_TEMPORAL
+
+
Gets or Sets MessageType
@@ -627,6 +852,11 @@
Enum QRSIMILARITY for value: QR_SIMILARITY
+
+
+ Enum QRTEMPORAL for value: QR_TEMPORAL
+
+
Gets or Sets MessageType
@@ -701,138 +931,324 @@
Validation context
Validation Result
-
+
- FeaturesTextCategoryQueryResult
+ TemporalQuery
-
+
- Initializes a new instance of the class.
+ Defines MessageType
- queryId.
- featureValues.
- category.
- elementID.
-
+
- Gets or Sets QueryId
+ Enum PING for value: PING
-
+
- Gets or Sets FeatureValues
+ Enum QSIM for value: Q_SIM
-
+
- Gets or Sets Category
+ Enum QMLT for value: Q_MLT
-
+
- Gets or Sets ElementID
+ Enum QNESEG for value: Q_NESEG
-
+
- Returns the string presentation of the object
+ Enum QSEG for value: Q_SEG
- String presentation of the object
-
+
- Returns the JSON string presentation of the object
+ Enum MLOOKUP for value: M_LOOKUP
- JSON string presentation of the object
-
+
- Returns true if objects are equal
+ Enum QTEMPORAL for value: Q_TEMPORAL
- Object to be compared
- Boolean
-
+
- Returns true if FeaturesTextCategoryQueryResult instances are equal
+ Enum SESSIONSTART for value: SESSION_START
- Instance of FeaturesTextCategoryQueryResult to be compared
- Boolean
-
+
- Gets the hash code
+ Enum QRSTART for value: QR_START
- Hash code
-
+
- To validate all properties of the instance
+ Enum QREND for value: QR_END
- Validation context
- Validation Result
-
+
- MediaObjectMetadataDescriptor
+ Enum QRERROR for value: QR_ERROR
-
+
- Initializes a new instance of the class.
+ Enum QROBJECT for value: QR_OBJECT
- objectId.
- domain.
- key.
- value.
- exists.
-
+
- Gets or Sets ObjectId
+ Enum QRMETADATAO for value: QR_METADATA_O
-
+
- Gets or Sets Domain
+ Enum QRMETADATAS for value: QR_METADATA_S
-
+
- Gets or Sets Key
+ Enum QRSEGMENT for value: QR_SEGMENT
-
+
- Gets or Sets Value
+ Enum QRSIMILARITY for value: QR_SIMILARITY
-
+
- Gets or Sets Exists
+ Enum QRTEMPORAL for value: QR_TEMPORAL
-
+
- Returns the string presentation of the object
+ Gets or Sets MessageType
- String presentation of the object
-
+
- Returns the JSON string presentation of the object
+ Initializes a new instance of the class.
- JSON string presentation of the object
-
+
- Returns true if objects are equal
+ Initializes a new instance of the class.
- Object to be compared
- Boolean
-
+ queries (required).
+ config.
+ timeDistances.
+ maxLength.
+ metadataAccessSpec.
+ messageType.
+
+
+
+ Gets or Sets Queries
+
+
+
+
+ Gets or Sets Config
+
+
+
+
+ Gets or Sets TimeDistances
+
+
+
+
+ Gets or Sets MaxLength
+
+
+
+
+ Gets or Sets MetadataAccessSpec
+
+
+
+
+ Returns the string presentation of the object
+
+ String presentation of the object
+
+
+
+ Returns the JSON string presentation of the object
+
+ JSON string presentation of the object
+
+
+
+ Returns true if objects are equal
+
+ Object to be compared
+ Boolean
+
+
+
+ Returns true if TemporalQuery instances are equal
+
+ Instance of TemporalQuery to be compared
+ Boolean
+
+
+
+ Gets the hash code
+
+ Hash code
+
+
+
+ To validate all properties of the instance
+
+ Validation context
+ Validation Result
+
+
+
+ FeaturesTextCategoryQueryResult
+
+
+
+
+ Initializes a new instance of the class.
+
+ queryId.
+ featureValues.
+ category.
+ elementID.
+
+
+
+ Gets or Sets QueryId
+
+
+
+
+ Gets or Sets FeatureValues
+
+
+
+
+ Gets or Sets Category
+
+
+
+
+ Gets or Sets ElementID
+
+
+
+
+ Returns the string presentation of the object
+
+ String presentation of the object
+
+
+
+ Returns the JSON string presentation of the object
+
+ JSON string presentation of the object
+
+
+
+ Returns true if objects are equal
+
+ Object to be compared
+ Boolean
+
+
+
+ Returns true if FeaturesTextCategoryQueryResult instances are equal
+
+ Instance of FeaturesTextCategoryQueryResult to be compared
+ Boolean
+
+
+
+ Gets the hash code
+
+ Hash code
+
+
+
+ To validate all properties of the instance
+
+ Validation context
+ Validation Result
+
+
+
+ MediaObjectMetadataDescriptor
+
+
+
+
+ Initializes a new instance of the class.
+
+ objectid.
+ domain.
+ key.
+ value.
+ exists.
+ objectId.
+
+
+
+ Gets or Sets Objectid
+
+
+
+
+ Gets or Sets Domain
+
+
+
+
+ Gets or Sets Key
+
+
+
+
+ Gets or Sets Value
+
+
+
+
+ Gets or Sets Exists
+
+
+
+
+ Gets or Sets ObjectId
+
+
+
+
+ Returns the string presentation of the object
+
+ String presentation of the object
+
+
+
+ Returns the JSON string presentation of the object
+
+ JSON string presentation of the object
+
+
+
+ Returns true if objects are equal
+
+ Object to be compared
+ Boolean
+
Returns true if MediaObjectMetadataDescriptor instances are equal
@@ -858,19 +1274,20 @@
MediaSegmentMetadataDescriptor
-
+
Initializes a new instance of the class.
- segmentId.
+ segmentid.
domain.
key.
value.
exists.
+ segmentId.
-
+
- Gets or Sets SegmentId
+ Gets or Sets Segmentid
@@ -893,6 +1310,11 @@
Gets or Sets Exists
+
+
+ Gets or Sets SegmentId
+
+
Returns the string presentation of the object
@@ -932,6 +1354,128 @@
Validation context
Validation Result
+
+
+ SelectResult
+
+
+
+
+ Initializes a new instance of the class.
+
+ columns.
+
+
+
+ Gets or Sets Columns
+
+
+
+
+ Returns the string presentation of the object
+
+ String presentation of the object
+
+
+
+ Returns the JSON string presentation of the object
+
+ JSON string presentation of the object
+
+
+
+ Returns true if objects are equal
+
+ Object to be compared
+ Boolean
+
+
+
+ Returns true if SelectResult instances are equal
+
+ Instance of SelectResult to be compared
+ Boolean
+
+
+
+ Gets the hash code
+
+ Hash code
+
+
+
+ To validate all properties of the instance
+
+ Validation context
+ Validation Result
+
+
+
+ SelectSpecification
+
+
+
+
+ Initializes a new instance of the class.
+
+ table.
+ columns.
+ limit.
+
+
+
+ Gets or Sets Table
+
+
+
+
+ Gets or Sets Columns
+
+
+
+
+ Gets or Sets Limit
+
+
+
+
+ Returns the string presentation of the object
+
+ String presentation of the object
+
+
+
+ Returns the JSON string presentation of the object
+
+ JSON string presentation of the object
+
+
+
+ Returns true if objects are equal
+
+ Object to be compared
+ Boolean
+
+
+
+ Returns true if SelectSpecification instances are equal
+
+ Instance of SelectSpecification to be compared
+ Boolean
+
+
+
+ Gets the hash code
+
+ Hash code
+
+
+
+ To validate all properties of the instance
+
+ Validation context
+ Validation Result
+
SimilarityQueryResultBatch
@@ -1144,19 +1688,24 @@
Enum QRSIMILARITY for value: QR_SIMILARITY
+
+
+ Enum QRTEMPORAL for value: QR_TEMPORAL
+
+
Gets or Sets MessageType
-
+
Initializes a new instance of the class.
filters.
ids.
- messageType.
idList.
+ messageType.
@@ -1324,156 +1873,313 @@
- Enum Chebyshev for value: chebyshev
+ Enum Chebyshev for value: chebyshev
+
+
+
+
+ Enum Euclidean for value: euclidean
+
+
+
+
+ Enum Squaredeuclidean for value: squaredeuclidean
+
+
+
+
+ Enum Manhattan for value: manhattan
+
+
+
+
+ Enum Minkowski for value: minkowski
+
+
+
+
+ Enum Spannorm for value: spannorm
+
+
+
+
+ Enum Haversine for value: haversine
+
+
+
+
+ Gets or Sets Distance
+
+
+
+
+ Initializes a new instance of the class.
+
+ queryId.
+ hints.
+ distance.
+ distanceWeights.
+ norm.
+ resultsPerModule.
+ maxResults.
+ relevantSegmentIds.
+ correspondenceFunctionIfEmpty.
+ distanceIfEmpty.
+ correspondenceFunction.
+ distanceWeightsIfEmpty.
+ normIfEmpty.
+ rawResultsPerModule.
+
+
+
+ Gets or Sets QueryId
+
+
+
+
+ Gets or Sets DistanceWeights
+
+
+
+
+ Gets or Sets Norm
+
+
+
+
+ Gets or Sets ResultsPerModule
+
+
+
+
+ Gets or Sets MaxResults
+
+
+
+
+ Gets or Sets RelevantSegmentIds
+
+
+
+
+ Gets or Sets CorrespondenceFunctionIfEmpty
+
+
+
+
+ Gets or Sets DistanceIfEmpty
+
+
+
+
+ Gets or Sets CorrespondenceFunction
+
+
+
+
+ Gets or Sets DistanceWeightsIfEmpty
+
+
+
+
+ Gets or Sets NormIfEmpty
+
+
+
+
+ Gets or Sets RawResultsPerModule
+
+
+
+
+ Returns the string presentation of the object
+
+ String presentation of the object
+
+
+
+ Returns the JSON string presentation of the object
+
+ JSON string presentation of the object
+
+
+
+ Returns true if objects are equal
+
+ Object to be compared
+ Boolean
+
+
+
+ Returns true if QueryConfig instances are equal
+
+ Instance of QueryConfig to be compared
+ Boolean
+
+
+
+ Gets the hash code
+
+ Hash code
+
+
+
+ To validate all properties of the instance
+
+ Validation context
+ Validation Result
+
+
+
+ TemporalQueryResult
+
+
+
+
+ Defines MessageType
+
+
+
+
+ Enum PING for value: PING
-
+
- Enum Euclidean for value: euclidean
+ Enum QSIM for value: Q_SIM
-
+
- Enum Squaredeuclidean for value: squaredeuclidean
+ Enum QMLT for value: Q_MLT
-
+
- Enum Manhattan for value: manhattan
+ Enum QNESEG for value: Q_NESEG
-
+
- Enum Minkowski for value: minkowski
+ Enum QSEG for value: Q_SEG
-
+
- Enum Spannorm for value: spannorm
+ Enum MLOOKUP for value: M_LOOKUP
-
+
- Enum Haversine for value: haversine
+ Enum QTEMPORAL for value: Q_TEMPORAL
-
+
- Gets or Sets Distance
+ Enum SESSIONSTART for value: SESSION_START
-
+
- Initializes a new instance of the class.
+ Enum QRSTART for value: QR_START
- queryId.
- hints.
- distance.
- distanceWeights.
- norm.
- resultsPerModule.
- maxResults.
- relevantSegmentIds.
- correspondenceFunctionIfEmpty.
- distanceIfEmpty.
- correspondenceFunction.
- normIfEmpty.
- distanceWeightsIfEmpty.
- rawResultsPerModule.
-
+
- Gets or Sets QueryId
+ Enum QREND for value: QR_END
-
+
- Gets or Sets DistanceWeights
+ Enum QRERROR for value: QR_ERROR
-
+
- Gets or Sets Norm
+ Enum QROBJECT for value: QR_OBJECT
-
+
- Gets or Sets ResultsPerModule
+ Enum QRMETADATAO for value: QR_METADATA_O
-
+
- Gets or Sets MaxResults
+ Enum QRMETADATAS for value: QR_METADATA_S
-
+
- Gets or Sets RelevantSegmentIds
+ Enum QRSEGMENT for value: QR_SEGMENT
-
+
- Gets or Sets CorrespondenceFunctionIfEmpty
+ Enum QRSIMILARITY for value: QR_SIMILARITY
-
+
- Gets or Sets DistanceIfEmpty
+ Enum QRTEMPORAL for value: QR_TEMPORAL
-
+
- Gets or Sets CorrespondenceFunction
+ Gets or Sets MessageType
-
+
- Gets or Sets NormIfEmpty
+ Initializes a new instance of the class.
+ content.
+ queryId.
+ messageType.
-
+
- Gets or Sets DistanceWeightsIfEmpty
+ Gets or Sets Content
-
+
- Gets or Sets RawResultsPerModule
+ Gets or Sets QueryId
-
+
Returns the string presentation of the object
String presentation of the object
-
+
Returns the JSON string presentation of the object
JSON string presentation of the object
-
+
Returns true if objects are equal
Object to be compared
Boolean
-
+
- Returns true if QueryConfig instances are equal
+ Returns true if TemporalQueryResult instances are equal
- Instance of QueryConfig to be compared
+ Instance of TemporalQueryResult to be compared
Boolean
-
+
Gets the hash code
Hash code
-
+
To validate all properties of the instance
@@ -1570,6 +2276,11 @@
Enum QRSIMILARITY for value: QR_SIMILARITY
+
+
+ Enum QRTEMPORAL for value: QR_TEMPORAL
+
+
Gets or Sets MessageType
@@ -1898,23 +2609,32 @@
Enum QRSIMILARITY for value: QR_SIMILARITY
+
+
+ Enum QRTEMPORAL for value: QR_TEMPORAL
+
+
Gets or Sets MessageType
-
+
+
+ Initializes a new instance of the class.
+
+
+
Initializes a new instance of the class.
- containers.
+ terms (required).
config.
- components.
messageType.
-
+
- Gets or Sets Containers
+ Gets or Sets Terms
@@ -1922,11 +2642,6 @@
Gets or Sets Config
-
-
- Gets or Sets Components
-
-
Returns the string presentation of the object
@@ -2056,6 +2771,11 @@
Enum QRSIMILARITY for value: QR_SIMILARITY
+
+
+ Enum QRTEMPORAL for value: QR_TEMPORAL
+
+
Gets or Sets MessageType
@@ -2208,6 +2928,11 @@
Enum QRSIMILARITY for value: QR_SIMILARITY
+
+
+ Enum QRTEMPORAL for value: QR_TEMPORAL
+
+
Gets or Sets MessageType
@@ -2398,61 +3123,67 @@
Validation context
Validation Result
-
+
- QueryComponent
+ FeaturesByEntityQueryResult
-
+
- Initializes a new instance of the class.
+ Initializes a new instance of the class.
- terms.
- containerId.
+ queryId.
+ featureMap.
+ entityName.
-
+
- Gets or Sets Terms
+ Gets or Sets QueryId
-
+
- Gets or Sets ContainerId
+ Gets or Sets FeatureMap
-
+
+
+ Gets or Sets EntityName
+
+
+
Returns the string presentation of the object
String presentation of the object
-
+
Returns the JSON string presentation of the object
JSON string presentation of the object
-
+
Returns true if objects are equal
Object to be compared
Boolean
-
+
- Returns true if QueryComponent instances are equal
+ Returns true if FeaturesByEntityQueryResult instances are equal
- Instance of QueryComponent to be compared
+ Instance of FeaturesByEntityQueryResult to be compared
Boolean
-
+
Gets the hash code
Hash code
-
+
To validate all properties of the instance
@@ -2702,6 +3433,11 @@
Enum QRSIMILARITY for value: QR_SIMILARITY
+
+
+ Enum QRTEMPORAL for value: QR_TEMPORAL
+
+
Gets or Sets MessageType
@@ -2843,6 +3579,11 @@
Enum QRSIMILARITY for value: QR_SIMILARITY
+
+
+ Enum QRTEMPORAL for value: QR_TEMPORAL
+
+
Gets or Sets MessageType
@@ -2910,11 +3651,37 @@
Tag
-
+
+
+ Defines Priority
+
+
+
+
+ Enum REQUEST for value: REQUEST
+
+
+
+
+ Enum REQUIRE for value: REQUIRE
+
+
+
+
+ Enum EXCLUDE for value: EXCLUDE
+
+
+
+
+ Gets or Sets Priority
+
+
+
Initializes a new instance of the class.
name.
+ priority.
id.
description.
@@ -3132,6 +3899,73 @@
Validation context
Validation Result
+
+
+ FeaturesByCategoryQueryResult
+
+
+
+
+ Initializes a new instance of the class.
+
+ queryId.
+ featureMap.
+ category.
+
+
+
+ Gets or Sets QueryId
+
+
+
+
+ Gets or Sets FeatureMap
+
+
+
+
+ Gets or Sets Category
+
+
+
+
+ Returns the string presentation of the object
+
+ String presentation of the object
+
+
+
+ Returns the JSON string presentation of the object
+
+ JSON string presentation of the object
+
+
+
+ Returns true if objects are equal
+
+ Object to be compared
+ Boolean
+
+
+
+ Returns true if FeaturesByCategoryQueryResult instances are equal
+
+ Instance of FeaturesByCategoryQueryResult to be compared
+ Boolean
+
+
+
+ Gets the hash code
+
+ Hash code
+
+
+
+ To validate all properties of the instance
+
+ Validation context
+ Validation Result
+
MediaObjectQueryResult
@@ -3212,72 +4046,143 @@
Enum QRMETADATAS for value: QR_METADATA_S
-
+
+
+ Enum QRSEGMENT for value: QR_SEGMENT
+
+
+
+
+ Enum QRSIMILARITY for value: QR_SIMILARITY
+
+
+
+
+ Enum QRTEMPORAL for value: QR_TEMPORAL
+
+
+
+
+ Gets or Sets MessageType
+
+
+
+
+ Initializes a new instance of the class.
+
+ content.
+ queryId.
+ messageType.
+
+
+
+ Gets or Sets Content
+
+
+
+
+ Gets or Sets QueryId
+
+
+
+
+ Returns the string presentation of the object
+
+ String presentation of the object
+
+
+
+ Returns the JSON string presentation of the object
+
+ JSON string presentation of the object
+
+
+
+ Returns true if objects are equal
+
+ Object to be compared
+ Boolean
+
+
+
+ Returns true if MediaObjectQueryResult instances are equal
+
+ Instance of MediaObjectQueryResult to be compared
+ Boolean
+
+
+
+ Gets the hash code
+
+ Hash code
+
+
- Enum QRSEGMENT for value: QR_SEGMENT
+ To validate all properties of the instance
+ Validation context
+ Validation Result
-
+
- Enum QRSIMILARITY for value: QR_SIMILARITY
+ StagedSimilarityQuery
-
+
- Gets or Sets MessageType
+ Initializes a new instance of the class.
-
+
- Initializes a new instance of the class.
+ Initializes a new instance of the class.
- content.
- queryId.
- messageType.
+ stages (required).
+ config.
-
+
- Gets or Sets Content
+ Gets or Sets Stages
-
+
- Gets or Sets QueryId
+ Gets or Sets Config
-
+
Returns the string presentation of the object
String presentation of the object
-
+
Returns the JSON string presentation of the object
JSON string presentation of the object
-
+
Returns true if objects are equal
Object to be compared
Boolean
-
+
- Returns true if MediaObjectQueryResult instances are equal
+ Returns true if StagedSimilarityQuery instances are equal
- Instance of MediaObjectQueryResult to be compared
+ Instance of StagedSimilarityQuery to be compared
Boolean
-
+
Gets the hash code
Hash code
-
+
To validate all properties of the instance
@@ -3319,6 +4224,11 @@
Enum LOCATION for value: LOCATION
+
+
+ Enum PARAMETERISEDLOCATION for value: PARAMETERISED_LOCATION
+
+
Enum TIME for value: TIME
@@ -4964,6 +5874,54 @@
Represents a collection of functions to interact with the API endpoints
+
+
+ Find features for the given category for all (or specific) IDs
+
+
+ Find features for the given category for all (or specific) IDs
+
+ Thrown when fails to make API call
+
+ (optional)
+ FeaturesByCategoryQueryResult
+
+
+
+ Find features for the given category for all (or specific) IDs
+
+
+ Find features for the given category for all (or specific) IDs
+
+ Thrown when fails to make API call
+
+ (optional)
+ ApiResponse of FeaturesByCategoryQueryResult
+
+
+
+ Find features for the given entity name for all (or specific) IDs
+
+
+ Find features for the given entity name for all (or specific) IDs
+
+ Thrown when fails to make API call
+
+ (optional)
+ FeaturesByEntityQueryResult
+
+
+
+ Find features for the given entity name for all (or specific) IDs
+
+
+ Find features for the given entity name for all (or specific) IDs
+
+ Thrown when fails to make API call
+
+ (optional)
+ ApiResponse of FeaturesByEntityQueryResult
+
Find metadata for the given object id
@@ -5174,7 +6132,7 @@
The segment id to find metadata of
ApiResponse of MediaSegmentMetadataQueryResult
-
+
Find tag ids for the given id
@@ -5185,7 +6143,7 @@
The id to find tagids of
TagIDsForElementQueryResult
-
+
Find tag ids for the given id
@@ -5220,6 +6178,54 @@
The category for which retrieval shall be performed
ApiResponse of FeaturesTextCategoryQueryResult
+
+
+ Find features for the given category for all (or specific) IDs
+
+
+ Find features for the given category for all (or specific) IDs
+
+ Thrown when fails to make API call
+
+ (optional)
+ Task of FeaturesByCategoryQueryResult
+
+
+
+ Find features for the given category for all (or specific) IDs
+
+
+ Find features for the given category for all (or specific) IDs
+
+ Thrown when fails to make API call
+
+ (optional)
+ Task of ApiResponse (FeaturesByCategoryQueryResult)
+
+
+
+ Find features for the given entity name for all (or specific) IDs
+
+
+ Find features for the given entity name for all (or specific) IDs
+
+ Thrown when fails to make API call
+
+ (optional)
+ Task of FeaturesByEntityQueryResult
+
+
+
+ Find features for the given entity name for all (or specific) IDs
+
+
+ Find features for the given entity name for all (or specific) IDs
+
+ Thrown when fails to make API call
+
+ (optional)
+ Task of ApiResponse (FeaturesByEntityQueryResult)
+
Find metadata for the given object id
@@ -5430,7 +6436,7 @@
The segment id to find metadata of
Task of ApiResponse (MediaSegmentMetadataQueryResult)
-
+
Find tag ids for the given id
@@ -5441,7 +6447,7 @@
The id to find tagids of
Task of TagIDsForElementQueryResult
-
+
Find tag ids for the given id
@@ -5538,6 +6544,78 @@
Header field value.
+
+
+ Find features for the given category for all (or specific) IDs Find features for the given category for all (or specific) IDs
+
+ Thrown when fails to make API call
+
+ (optional)
+ FeaturesByCategoryQueryResult
+
+
+
+ Find features for the given category for all (or specific) IDs Find features for the given category for all (or specific) IDs
+
+ Thrown when fails to make API call
+
+ (optional)
+ ApiResponse of FeaturesByCategoryQueryResult
+
+
+
+ Find features for the given category for all (or specific) IDs Find features for the given category for all (or specific) IDs
+
+ Thrown when fails to make API call
+
+ (optional)
+ Task of FeaturesByCategoryQueryResult
+
+
+
+ Find features for the given category for all (or specific) IDs Find features for the given category for all (or specific) IDs
+
+ Thrown when fails to make API call
+
+ (optional)
+ Task of ApiResponse (FeaturesByCategoryQueryResult)
+
+
+
+ Find features for the given entity name for all (or specific) IDs Find features for the given entity name for all (or specific) IDs
+
+ Thrown when fails to make API call
+
+ (optional)
+ FeaturesByEntityQueryResult
+
+
+
+ Find features for the given entity name for all (or specific) IDs Find features for the given entity name for all (or specific) IDs
+
+ Thrown when fails to make API call
+
+ (optional)
+ ApiResponse of FeaturesByEntityQueryResult
+
+
+
+ Find features for the given entity name for all (or specific) IDs Find features for the given entity name for all (or specific) IDs
+
+ Thrown when fails to make API call
+
+ (optional)
+ Task of FeaturesByEntityQueryResult
+
+
+
+ Find features for the given entity name for all (or specific) IDs Find features for the given entity name for all (or specific) IDs
+
+ Thrown when fails to make API call
+
+ (optional)
+ Task of ApiResponse (FeaturesByEntityQueryResult)
+
Find metadata for the given object id Find metadata by the given object id
@@ -5850,7 +6928,7 @@
The segment id to find metadata of
Task of ApiResponse (MediaSegmentMetadataQueryResult)
-
+
Find tag ids for the given id Find tag ids for the given id
@@ -5858,7 +6936,7 @@
The id to find tagids of
TagIDsForElementQueryResult
-
+
Find tag ids for the given id Find tag ids for the given id
@@ -5866,7 +6944,7 @@
The id to find tagids of
ApiResponse of TagIDsForElementQueryResult
-
+
Find tag ids for the given id Find tag ids for the given id
@@ -5874,7 +6952,7 @@
The id to find tagids of
Task of TagIDsForElementQueryResult
-
+
Find tag ids for the given id Find tag ids for the given id
@@ -5945,6 +7023,28 @@
(optional)
ApiResponse of DistinctElementsResult
+
+
+ Find all elements of given columns
+
+
+ Find all elements of given columns
+
+ Thrown when fails to make API call
+ (optional)
+ SelectResult
+
+
+
+ Find all elements of given columns
+
+
+ Find all elements of given columns
+
+ Thrown when fails to make API call
+ (optional)
+ ApiResponse of SelectResult
+
Find all distinct elements of a given column
@@ -5967,6 +7067,28 @@
(optional)
Task of ApiResponse (DistinctElementsResult)
+
+
+ Find all elements of given columns
+
+
+ Find all elements of given columns
+
+ Thrown when fails to make API call
+ (optional)
+ Task of SelectResult
+
+
+
+ Find all elements of given columns
+
+
+ Find all elements of given columns
+
+ Thrown when fails to make API call
+ (optional)
+ Task of ApiResponse (SelectResult)
+
Represents a collection of functions to interact with the API endpoints
@@ -6061,6 +7183,38 @@
(optional)
Task of ApiResponse (DistinctElementsResult)
+
+
+ Find all elements of given columns Find all elements of given columns
+
+ Thrown when fails to make API call
+ (optional)
+ SelectResult
+
+
+
+ Find all elements of given columns Find all elements of given columns
+
+ Thrown when fails to make API call
+ (optional)
+ ApiResponse of SelectResult
+
+
+
+ Find all elements of given columns Find all elements of given columns
+
+ Thrown when fails to make API call
+ (optional)
+ Task of SelectResult
+
+
+
+ Find all elements of given columns Find all elements of given columns
+
+ Thrown when fails to make API call
+ (optional)
+ Task of ApiResponse (SelectResult)
+
Represents a collection of functions to interact with the API endpoints
@@ -6383,6 +7537,50 @@
(optional)
ApiResponse of SimilarityQueryResultBatch
+
+
+ Find similar segments based on the given staged query
+
+
+ Performs a similarity search based on the formulated query stages, executing each subsequent stage on the results of the previous stage
+
+ Thrown when fails to make API call
+ (optional)
+ SimilarityQueryResultBatch
+
+
+
+ Find similar segments based on the given staged query
+
+
+ Performs a similarity search based on the formulated query stages, executing each subsequent stage on the results of the previous stage
+
+ Thrown when fails to make API call
+ (optional)
+ ApiResponse of SimilarityQueryResultBatch
+
+
+
+ Find similar segments based on the given temporal query
+
+
+ Performs a similarity search based on the formulated query stages in the given temporal order, scoring final results by their similarity to the specified temporal context
+
+ Thrown when fails to make API call
+ (optional)
+ TemporalQueryResult
+
+
+
+ Find similar segments based on the given temporal query
+
+
+ Performs a similarity search based on the formulated query stages in the given temporal order, scoring final results by their similarity to the specified temporal context
+
+ Thrown when fails to make API call
+ (optional)
+ ApiResponse of TemporalQueryResult
+
Find similar segments based on the given query
@@ -6405,6 +7603,50 @@
(optional)
Task of ApiResponse (SimilarityQueryResultBatch)
+
+
+ Find similar segments based on the given staged query
+
+
+ Performs a similarity search based on the formulated query stages, executing each subsequent stage on the results of the previous stage
+
+ Thrown when fails to make API call
+ (optional)
+ Task of SimilarityQueryResultBatch
+
+
+
+ Find similar segments based on the given staged query
+
+
+ Performs a similarity search based on the formulated query stages, executing each subsequent stage on the results of the previous stage
+
+ Thrown when fails to make API call
+ (optional)
+ Task of ApiResponse (SimilarityQueryResultBatch)
+
+
+
+ Find similar segments based on the given temporal query
+
+
+ Performs a similarity search based on the formulated query stages in the given temporal order, scoring final results by their similarity to the specified temporal context
+
+ Thrown when fails to make API call
+ (optional)
+ Task of TemporalQueryResult
+
+
+
+ Find similar segments based on the given temporal query
+
+
+ Performs a similarity search based on the formulated query stages in the given temporal order, scoring final results by their similarity to the specified temporal context
+
+ Thrown when fails to make API call
+ (optional)
+ Task of ApiResponse (TemporalQueryResult)
+
Represents a collection of functions to interact with the API endpoints
@@ -6499,6 +7741,70 @@
(optional)
Task of ApiResponse (SimilarityQueryResultBatch)
+
+
+ Find similar segments based on the given staged query Performs a similarity search based on the formulated query stages, executing each subsequent stage on the results of the previous stage
+
+ Thrown when fails to make API call
+ (optional)
+ SimilarityQueryResultBatch
+
+
+
+ Find similar segments based on the given staged query Performs a similarity search based on the formulated query stages, executing each subsequent stage on the results of the previous stage
+
+ Thrown when fails to make API call
+ (optional)
+ ApiResponse of SimilarityQueryResultBatch
+
+
+
+ Find similar segments based on the given staged query Performs a similarity search based on the formulated query stages, executing each subsequent stage on the results of the previous stage
+
+ Thrown when fails to make API call
+ (optional)
+ Task of SimilarityQueryResultBatch
+
+
+
+ Find similar segments based on the given staged query Performs a similarity search based on the formulated query stages, executing each subsequent stage on the results of the previous stage
+
+ Thrown when fails to make API call
+ (optional)
+ Task of ApiResponse (SimilarityQueryResultBatch)
+
+
+
+ Find similar segments based on the given temporal query Performs a similarity search based on the formulated query stages in the given temporal order, scoring final results by their similarity to the specified temporal context
+
+ Thrown when fails to make API call
+ (optional)
+ TemporalQueryResult
+
+
+
+ Find similar segments based on the given temporal query Performs a similarity search based on the formulated query stages in the given temporal order, scoring final results by their similarity to the specified temporal context
+
+ Thrown when fails to make API call
+ (optional)
+ ApiResponse of TemporalQueryResult
+
+
+
+ Find similar segments based on the given temporal query Performs a similarity search based on the formulated query stages in the given temporal order, scoring final results by their similarity to the specified temporal context
+
+ Thrown when fails to make API call
+ (optional)
+ Task of TemporalQueryResult
+
+
+
+ Find similar segments based on the given temporal query Performs a similarity search based on the formulated query stages in the given temporal order, scoring final results by their similarity to the specified temporal context
+
+ Thrown when fails to make API call
+ (optional)
+ Task of ApiResponse (TemporalQueryResult)
+
API client is mainly responsible for making the HTTP call to the API backend.
@@ -6526,7 +7832,7 @@
Initializes a new instance of the class
- with default base path (http://localhost:4567).
+ with default base path (http://localhost).
An instance of Configuration.
diff --git a/Runtime/Vitrivr/UnityInterface/CineastApi/Utils/QueryBuilder.cs b/Runtime/Vitrivr/UnityInterface/CineastApi/Utils/QueryBuilder.cs
index 222a4cd..a7cfd77 100644
--- a/Runtime/Vitrivr/UnityInterface/CineastApi/Utils/QueryBuilder.cs
+++ b/Runtime/Vitrivr/UnityInterface/CineastApi/Utils/QueryBuilder.cs
@@ -11,12 +11,9 @@ public class QueryBuilder
/// Generic similarity query for given terms
///
///
- ///
public static SimilarityQuery BuildSimilarityQuery(params QueryTerm[] terms)
{
- var qc = new QueryComponent(terms.ToList());
- var sq = new SimilarityQuery(new List {qc});
- return sq;
+ return new SimilarityQuery(terms.ToList());
}
///
@@ -24,7 +21,6 @@ public static SimilarityQuery BuildSimilarityQuery(params QueryTerm[] terms)
///
/// Latitude in WSG85 degrees
/// Longitude in WSG85
- ///
public static SimilarityQuery BuildSpatialSimilarityQuery(double lat, double lon)
{
return BuildSimilarityQuery(QueryTermBuilder.BuildLocationTerm(lat, lon));
@@ -34,7 +30,6 @@ public static SimilarityQuery BuildSpatialSimilarityQuery(double lat, double lon
/// Convenience method to create temporal similarity query
///
/// The timestamp in UTC time format
- ///
public static SimilarityQuery BuildTemporalSimilarityQuery(string utcTime)
{
return BuildSimilarityQuery(QueryTermBuilder.BuildTimeTerm(utcTime));
@@ -44,7 +39,6 @@ public static SimilarityQuery BuildTemporalSimilarityQuery(string utcTime)
/// A simple Query-by-Example query, using Edge and Global color categories
///
/// Base64 encoded image
- ///
public static SimilarityQuery BuildSimpleQbEQuery(string base64)
{
return BuildSimilarityQuery(QueryTermBuilder.BuildImageTermForCategories(base64, new List
@@ -60,8 +54,7 @@ public static SimilarityQuery BuildSimpleQbEQuery(string base64)
/// Convenience method to create tags only query
///
/// Tags to query
- ///
- public static SimilarityQuery BuildTagsSimilarityQuery(List<(string id, string name)> tags)
+ public static SimilarityQuery BuildTagsSimilarityQuery(IEnumerable<(string id, string name)> tags)
{
return BuildSimilarityQuery(QueryTermBuilder.BuildTagTerm(tags));
}
diff --git a/Runtime/Vitrivr/UnityInterface/CineastApi/Utils/QueryTermBuilder.cs b/Runtime/Vitrivr/UnityInterface/CineastApi/Utils/QueryTermBuilder.cs
index 0c0f132..d1ba324 100644
--- a/Runtime/Vitrivr/UnityInterface/CineastApi/Utils/QueryTermBuilder.cs
+++ b/Runtime/Vitrivr/UnityInterface/CineastApi/Utils/QueryTermBuilder.cs
@@ -21,13 +21,13 @@ public static QueryTerm BuildBooleanTerm(string attribute, RelationalOperator op
var expressionJson = BuildBooleanTermJson(attribute, op, values);
var data = Base64Converter.JsonToBase64($"[{expressionJson}]");
- return new QueryTerm(QueryTerm.TypeEnum.BOOLEAN, data, new List {"boolean"});
+ return new QueryTerm(QueryTerm.TypeEnum.BOOLEAN, data, new List { "boolean" });
}
///
/// Builds a Boolean consisting of multiple conditions.
///
- /// Enumerable of conditions
+ /// Enumerable of conditions, where string conditions must already be in quotes
/// The corresponding query term
public static QueryTerm BuildBooleanTerm(
IEnumerable<(string attribute, RelationalOperator op, string[] values)> conditions)
@@ -35,7 +35,7 @@ public static QueryTerm BuildBooleanTerm(
var conditionsJson = conditions.Select(c => BuildBooleanTermJson(c.attribute, c.op, c.values));
var data = Base64Converter.JsonToBase64($"[{string.Join(",", conditionsJson)}]");
- return new QueryTerm(QueryTerm.TypeEnum.BOOLEAN, data, new List {"boolean"});
+ return new QueryTerm(QueryTerm.TypeEnum.BOOLEAN, data, new List { "boolean" });
}
///
@@ -49,7 +49,7 @@ public static string BuildBooleanTermJson(string attribute, RelationalOperator o
{
var attributeJson = $"\"attribute\":\"{attribute}\"";
var operatorJson = $"\"operator\":\"{op.ToString().ToUpper()}\"";
- var valuesString = values.Length == 1 ? $"\"{values[0]}\"" : $"[\"{string.Join("\",\"", values)}\"]";
+ var valuesString = values.Length == 1 ? $"{values[0]}" : $"[{string.Join(",", values)}]";
var valuesJson = $"\"values\":{valuesString}";
return $"{{{attributeJson},{operatorJson},{valuesJson}}}";
@@ -135,7 +135,31 @@ public static QueryTerm BuildLocationTerm(double latitude, double longitude)
QueryTerm.TypeEnum.LOCATION,
$"[{latitude},{longitude}]",
new List
- {CineastConfigManager.Instance.Config.categoryMappings.mapping[CategoryMappings.SPATIAL_CATEGORY]});
+ { CineastConfigManager.Instance.Config.categoryMappings.mapping[CategoryMappings.SPATIAL_CATEGORY] });
+ return qt;
+ }
+
+ ///
+ /// Builds a of type PARAMETRIZED_LOCATION with the given half similarity distance.
+ ///
+ /// Latitude of term
+ /// Longitude of term
+ /// Distance at which similarity should equal 0.5
+ /// The corresponding query term
+ public static QueryTerm BuildLocationTerm(double latitude, double longitude, double halfSimilarityDistance)
+ {
+ var qt = new QueryTerm(
+ QueryTerm.TypeEnum.PARAMETERISEDLOCATION,
+ "{\"geoPoint\": " +
+ "{\"latitude\": " +
+ latitude +
+ ", \"longitude\": " +
+ longitude +
+ "}, \"parameter\": " +
+ halfSimilarityDistance +
+ "}",
+ new List
+ { CineastConfigManager.Instance.Config.categoryMappings.mapping[CategoryMappings.SPATIAL_CATEGORY] });
return qt;
}
@@ -149,7 +173,7 @@ public static QueryTerm BuildTagTerm(string tags)
var qt = new QueryTerm(QueryTerm.TypeEnum.TAG,
Base64Converter.JsonPrefix + tags,
new List
- {CineastConfigManager.Instance.Config.categoryMappings.mapping[CategoryMappings.TAGS_CATEGORY]});
+ { CineastConfigManager.Instance.Config.categoryMappings.mapping[CategoryMappings.TAGS_CATEGORY] });
return qt;
}
@@ -168,7 +192,7 @@ public static QueryTerm BuildTagTerm(IEnumerable<(string id, string name)> tags)
var qt = new QueryTerm(QueryTerm.TypeEnum.TAG,
Base64Converter.JsonToBase64(tagList),
new List
- {CineastConfigManager.Instance.Config.categoryMappings.mapping[CategoryMappings.TAGS_CATEGORY]});
+ { CineastConfigManager.Instance.Config.categoryMappings.mapping[CategoryMappings.TAGS_CATEGORY] });
return qt;
}
diff --git a/build.gradle b/build.gradle
index ed5812e..8563cea 100644
--- a/build.gradle
+++ b/build.gradle
@@ -6,20 +6,22 @@ plugins {
id "org.openapi.generator" version "4.3.1"
}
-/* Setup OpenApi Specs (OAS): Defaults to default.*/
-def cineastOAS = "http://localhost:4567/openapi-specs"
+/* Setup OpenApi Specs (OAS): Defaults to latest official.*/
+def cineastOAS = "https://raw.githubusercontent.com/vitrivr/cineast/master/docs/openapi.json"
/* If gradle gets 'oas' argument (with -Poas="path/to/OAS"), take these */
if(project.hasProperty('oas')){
cineastOAS = oas
}
+/* Name to add to dlls to avoid Unity loading errors. */
+def dllName = "Cineast"
+
/* The OpenApi generator task */
openApiGenerate {
generatorName = "csharp"
inputSpec = cineastOAS
outputDir = "$rootDir/Generated"
packageName = "Org.Vitrivr.CineastApi"
- skipValidateSpec = true
}
/* Customized clean task to delete OpenAPI generated*/
@@ -59,9 +61,9 @@ task modex(type: Exec){
task deployLibs(type: Copy){
from(file("$rootDir/Generated/bin"))
into(file("$rootDir/Runtime/Libs"))
- rename("RestSharp.dll", "RestSharp.Cineast.dll")
- rename("Newtonsoft.Json.dll", "Newtonsoft.Json.Cineast.dll")
- rename("JsonSubTypes.dll", "JsonSubTypes.Cineast.dll")
+ rename("RestSharp.dll", "RestSharp." + dllName + ".dll")
+ rename("Newtonsoft.Json.dll", "Newtonsoft.Json." + dllName + ".dll")
+ rename("JsonSubTypes.dll", "JsonSubTypes." + dllName + ".dll")
}
/* Copy the mandatory link.xml */
diff --git a/package.json b/package.json
index ba1ffbf..4d4f680 100644
--- a/package.json
+++ b/package.json
@@ -1,9 +1,9 @@
{
"name": "org.vitrivr.unityinterface.cineastapi",
- "version": "0.0.1",
+ "version": "0.0.2",
"displayName": "Cineast Unity Interface",
"description": "An all-unity client for [Cineast](https://github.com/vitrivr/cineast/).",
- "unity": "2019.4",
+ "unity": "2020.3",
"keywords": [
"cineast","restclient","vitrivr","multimediaretrieval","retreival","multimedia"
],