Software:Weaviate
Original author(s) | Bob van Luijt[1] |
---|---|
Developer(s) | SeMI Technologies |
Initial release | May 21, 2019[2] |
Repository | https://github.com/semi-technologies/weaviate |
Written in | Go, C++ |
Operating system | Cross-platform |
Type | Knowledge engine[disambiguation needed], Knowledge graph, Search and index |
License | BSD-3, Weaviate Enterprice (commercial) |
Website | https://www.semi.technology/ |
Weaviate is an open source knowledge graph based on a vector storage mechanism called the contextionary. It allows a user to search for context or keywords in a dataset rather than fixed keywords alone. It provides a GraphQL interface to query the knowledge graph and an HTTP web interface to add the data via an ontology schema.
Contextionary
The contextionary (c11y)[3] is the knowledge engine[disambiguation needed] at the core of Weaviate. Conceptually it is a form of word embeddings. From every data object added to Weaviate, a new point in the vector space is created giving the data a unique, semantic meaning. When querying Weaviate, known as exploring,[4] one can target data-objects directly or based on contextual and semantic search. For example, a City with the name Amsterdam can be found by targeting place, Netherlands, canals, Rembrandt.
Ontology & Concepts
Weaviate defines things and actions which are called concepts[5] where things often consist of nouns and actions consist of verbs. Weaviate's ontology-schema is class-based and determines the semantic meaning of the concepts. For example, a class Animal with the name-property Seal translates into a weighted centroid representing a Seal.
# Example of a Weaviate ontology in YAML class: Zoo keywords: - keyword: park weight: 0.7 - keyword: animals weight: 0.7 description: Animal park properties: - dataType: - string cardinality: atMostOne description: Name of the Zoo name: name keywords: - keyword: identifier weight: 0.8
GraphQL interface
Weaviate exposes the complete knowledge graph through a GraphQL API-interface.[6] The interface allows targeting individual concepts directly or through identifiers inside the vector space called beacons.
{ Local { Explore { Concepts(keywords: ["fins", "marine", "mammal"]) { beacon className } } Get { Things { Animal { name age InZoo { ... on Zoo { name } } } } } } }
Open Source Contextionary
The open source contextionary is based on WikiPedia and the Wiktionary [7] but can also be created based on custom documents such as scientific journals or legal documents.
References
- ↑ "Weaviate Contributors". https://github.com/semi-technologies/weaviate/graphs/contributors. Retrieved 12 June 2019.
- ↑ "Releases · semi-technologies/weaviate". https://github.com/semi-technologies/weaviate/releases. Retrieved 12 June 2019.
- ↑ "Technology Summary". https://web.archive.org/web/20190612102951/https://www.semi.technology/blog/technology-summary.html. Retrieved 12 June 2019.
- ↑ "Weaviate Getting Started". https://web.archive.org/web/20190612104122/https://github.com/semi-technologies/weaviate/blob/master/docs/en/use/graphql_local.md. Retrieved 12 June 2019.
- ↑ "Weaviate Ontology Schema". https://web.archive.org/web/20190612103025/https://github.com/semi-technologies/weaviate/blob/master/docs/en/use/ontology-schema.md. Retrieved 12 June 2019.
- ↑ "Weaviate Introduction". https://archive.org/details/youtube-hm9ibPZOUcw. Retrieved 2 February 2019.
- ↑ "Weaviate Contextionary". https://web.archive.org/web/20190612104122/https://github.com/semi-technologies/weaviate/blob/master/docs/en/use/ontology-schema.md. Retrieved 12 June 2019.