Showing preview only (767K chars total). Download the full file or copy to clipboard to get everything.
Repository: arturo-lang/grafito
Branch: main
Commit: cdbeb8b76ea2
Files: 72
Total size: 734.5 KB
Directory structure:
gitextract_hq975k_i/
├── .gitattributes
├── .github/
│ ├── FUNDING.yml
│ └── workflows/
│ ├── release.yml
│ ├── test.yml
│ └── todos.yml
├── .gitignore
├── Dockerfile
├── LICENSE
├── README.md
├── examples/
│ ├── sample1.art
│ ├── sample10.art
│ ├── sample11.art
│ ├── sample12.art
│ ├── sample2.art
│ ├── sample3.art
│ ├── sample4.art
│ ├── sample4b.art
│ ├── sample4c.art
│ ├── sample4d.art
│ ├── sample5.art
│ ├── sample6.art
│ ├── sample7.art
│ ├── sample8.art
│ └── sample9.art
├── grafito.art
├── info.art
├── logo.txt
├── sql/
│ ├── filters/
│ │ ├── edgePropertyWithValue.sql
│ │ ├── edgeWithAny.sql
│ │ ├── edgeWithProperties.sql
│ │ ├── edgeWithSource.sql
│ │ ├── edgeWithTarget.sql
│ │ ├── hasEdge.sql
│ │ ├── hasProperty.sql
│ │ └── nodePropertyWithValue.sql
│ ├── pragmas/
│ │ ├── caseInsensitiveLike.sql
│ │ └── caseSensitiveLike.sql
│ ├── procs/
│ │ ├── countEdges.sql
│ │ ├── countNodes.sql
│ │ ├── createEdge.sql
│ │ ├── createNode.sql
│ │ ├── deleteEdge.sql
│ │ ├── deleteEdgeById.sql
│ │ ├── deleteNode.sql
│ │ ├── deleteNodeEdges.sql
│ │ ├── fetchNodes.sql
│ │ ├── fetchNodes.withEdges.sql
│ │ ├── getAllNodeTags.sql
│ │ ├── getMaxNodeId.sql
│ │ ├── getNode.sql
│ │ ├── getRelatedNodes.sql
│ │ ├── updateEdge.sql
│ │ ├── updateNode.sql
│ │ ├── updateNodeProperties.sql
│ │ └── updateNodeProperty.sql
│ └── schema.sql
└── ui/
├── index.html
├── palettes/
│ ├── default.art
│ ├── earthy.art
│ ├── inferno.art
│ ├── light.art
│ ├── magma.art
│ ├── pastel.art
│ ├── playful.art
│ ├── rainbow.art
│ ├── vibrant.art
│ └── viridis.art
├── scripts/
│ ├── ace/
│ │ ├── ace.js
│ │ ├── modes/
│ │ │ └── grafito.js
│ │ └── themes/
│ │ └── monokai.js
│ └── app.js
└── styles/
└── app.less
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitattributes
================================================
*.art linguist-language=Red
*.art linguist-vendored
================================================
FILE: .github/FUNDING.yml
================================================
github: [drkameleon]
================================================
FILE: .github/workflows/release.yml
================================================
name: "Release"
on:
push:
tags:
- 'v*.*.*'
env:
app-name: grafito
defaults:
run:
shell: bash -l {0}
jobs:
package:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
- macos-latest
version:
- full
steps:
- name: "Cancel similar actions in progress"
uses: styfle/cancel-workflow-action@0.6.0
with:
access_token: ${{ github.token }}
- name: "Get Arturo"
uses: actions/checkout@main
with:
repository: arturo-lang/arturo
submodules: recursive
- name: Install Nim
run: |
wget -qO - https://nim-lang.org/choosenim/init.sh | bash -s -- -y
echo "$HOME/.nimble/bin" >> $GITHUB_PATH
- name: Install dependencies
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install libwebkit2gtk-4.0-dev
- name: Verify dependecies
run: |
nim --version
- name: "Checkout"
uses: actions/checkout@main
with:
submodules: recursive
path: "grafito"
- name: Package binary
run: |
mv grafito/grafito.art grafito.art
rm -rf grafito
./package grafito.art
ls -la
- name: Create artifact
run: |
install -m 0755 ./grafito .
tar czf ${{ env.app-name }}-${{runner.os}}.tar.gz ${{ env.app-name }} README.md LICENSE
- name: Upload Artifact
uses: 'actions/upload-artifact@v1'
with:
name: ${{ env.app-name }}-${{runner.os}}.tar.gz
path: ${{ env.app-name }}-${{runner.os}}.tar.gz
upload:
name: "Upload"
runs-on: ubuntu-latest
if: ${{ always() }}
needs:
- package
steps:
- uses: actions/download-artifact@v2
with:
path: ./assets
- name: Display structure of downloaded files
run: ls -R
- name: Create Release
id: create-release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: ${{ github.ref }}
body: |
Official Release
${{ github.ref }}
draft: false
prerelease: false
- name: Upload Release Assets
id: upload-release-assets
uses: dwenegar/upload-release-assets@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
release_id: ${{ steps.create-release.outputs.id }}
assets_path: ./assets
================================================
FILE: .github/workflows/test.yml
================================================
name: "CI"
on:
push:
branches:
- master
pull_request:
types: [opened, synchronize]
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
name: "Test"
runs-on: ${{
(matrix.os == 'linux') && (matrix.arch == 'arm64' && 'ubuntu-24.04-arm' || 'ubuntu-latest') ||
(matrix.os == 'macos') && (matrix.arch == 'arm64' && 'macos-latest' || 'macOS-15-intel') ||
(matrix.os == 'windows') && 'windows-latest' ||
'ubuntu-latest' }}
# TODO(workflows/test) FreeBSD workflow gets stuck
# Not sure if it has to do with the VM setup on GitHub Actions
# or something related to the implementation of Grafito,
# but we'll have to investigate this.
# labels: workflows, bug
strategy:
fail-fast: false
matrix:
include:
- {os: linux, arch: amd64}
- {os: linux, arch: arm64}
# - {os: freebsd, arch: amd64}
- {os: macos, arch: amd64}
- {os: macos, arch: arm64}
- {os: windows, arch: amd64}
defaults:
run:
shell: ${{
(matrix.os == 'freebsd') && 'freebsd {0}' ||
(matrix.os == 'windows') && 'msys2 {0}' ||
'bash' }}
steps:
- name: "Checkout sources"
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup Arturo
uses: arturo-lang/setup-arturo@v2
with:
token: ${{ secrets.GITHUB_TOKEN }}
os: ${{ matrix.os }}
arch: ${{ matrix.arch }}
- name: Run unit tests
run: |
cd $GITHUB_WORKSPACE
arturo -e "inspect sys\deps"
arturo tests/test1.art
================================================
FILE: .github/workflows/todos.yml
================================================
name: "TODO -> Issue"
on:
push:
branches:
- 'main'
tags-ignore:
- '**'
jobs:
build:
runs-on: "ubuntu-latest"
steps:
- uses: "actions/checkout@main"
- name: "TODO to Issue generator"
uses: "alstr/todo-to-issue-action@v4.5"
id: "todo"
with:
TOKEN: ${{ secrets.GITHUB_TOKEN }}
================================================
FILE: .gitignore
================================================
*.db
*.graf
test*.sql
test*.nim
test*.html
testy.art
test*.art
================================================
FILE: Dockerfile
================================================
FROM arturolang/arturo
RUN apk update && apk upgrade
RUN apk add --no-cache sqlite-dev
RUN apk add sqlite
ADD grafito.art /home/grafito.art
WORKDIR /home
ENTRYPOINT [ "/home/grafito.art" ]
================================================
FILE: LICENSE
================================================
MIT License
Copyright (c) 2024 Yanis Zafirópulos
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: README.md
================================================
<p align="center"><img align="center" width="350" src="https://raw.githubusercontent.com/arturo-lang/grafito/master/logo.png"/></p>
<p align="center">
<b>Portable, Serverless & Lightweight<br>SQLite-based Graph Database</b>
<br><br>
<img src="https://img.shields.io/github/license/arturo-lang/grafito?style=for-the-badge">
<a href="https://github.com/arturo-lang/arturo" style="text-decoration: none; display: inline-block;"><img src="https://img.shields.io/badge/language-Arturo-6A156B.svg?style=for-the-badge" alt="Language"/></a>
<img src="https://img.shields.io/github/actions/workflow/status/arturo-lang/grafito/test.yml?branch=main&style=for-the-badge">
</p>
<p align="center"><img width="90%" align="center" src="https://raw.githubusercontent.com/arturo-lang/grafito/master/ui-screenshot.png"/></p>
---
<!--ts-->
* [At A Glance](#at-a-glance)
* [Try Grafito](#try-grafito)
* [Docker](#docker)
* [Installation](#installation)
* [As a Library](#as-a-library)
* [As a Standalone tool](#as-a-standalone-tool)
* [How To](#how-to)
* [Create a simple Node](#create-a-simple-node)
* [Create Relationships between Nodes](#create-relationships-between-nodes)
* [Search Nodes](#search-nodes)
* [Delete an existing Node](#delete-an-existing-node)
* [Delete an existing Relationship](#delete-an-existing-relationship)
* [Preview a Set of Nodes](#preview-a-set-of-nodes)
* [More complex queries](#more-complex-queries)
* [Reverse edge queries](#reverse-edge-queries)
* [Using filters](#using-filters)
* [Not just a query language!](#not-just-a-query-language)
* [Command Reference](#command-reference)
* [put](#put)
* [unput](#unput)
* [link](#link)
* [unlink](#unlink)
* [what](#what)
* [fetch](#fetch)
* [preview](#preview)
* [Filter Reference](#filter-reference)
* [contains](#contains)
* [prefix](#prefix)
* [suffix](#suffix)
* [over](#over)
* [under](#under)
* [overOrEqual](#greaterOrEqual)
* [underOrEqual](#underOrEqual)
* [in](#in)
* [not](#not)
* [Community](#community)
* [License](#license)
<!--te-->
---
## At A Glance
I know you really don't care about long explanations and want to have a look at working code right away, so... here you are (this is the code that creates the graph in the image above):
```red
;---------------------------------------------
; Import Grafito
; and ... let's rock'n'roll! :)
;---------------------------------------------
do.import {grafito.art}
do [
;---------------------------------------------
; Set up a new graph environment
; with a local database named "sample11"
;---------------------------------------------
graph .helpers: [person movie country book]
.create
.palette: 'default
"sample11"
[
unless dbExists? [
;---------------------------------------------
; Populate the database
;---------------------------------------------
uk: country.new [name: "United Kingdom"]
au: country.new [name: "Australia"]
us: country.new [name: "United States"]
ca: country.new [name: "Canada"]
fr: country.new [name: "France"]
de: country.new [name: "Germany"]
se: country.new [name: "Sweden"]
es: country.new [name: "Spain"]
pl: country.new [name: "Poland"]
nolan: person.new [name: "Christopher Nolan" birthday: 1970 sex: "m"]
pearce: person.new [name: "Guy Pearce" birthday: 1967 sex: "m"]
hanson: person.new [name: "Curtis Hanson" birthday: 1945 sex: "m"]
spacey: person.new [name: "Kevin Spacey" birthday: 1959 sex: "m"]
dicaprio: person.new [name: "Leonardo DiCaprio" birthday: 1974 sex: "m"]
hardy: person.new [name: "Tom Hardy" birthday: 1977 sex: "m"]
cotillard: person.new [name: "Marion Cotillard" birthday: 1975 sex: "f"]
moss: person.new [name: "Carrie-Ann Moss" birthday: 1967 sex: "f"]
kidman: person.new [name: "Nicole Kidman" birthday: 1967 sex: "f"]
cruise: person.new [name: "Tom Cruise" birthday: 1962 sex: "m"]
kubrick: person.new [name: "Stanley Kubrick" birthday: 1928 died: 1999 sex: "m" alive: false]
burton: person.new [name: "Tim Burton" birthday: 1958 sex: "m"]
depp: person.new [name: "Johny Depp" birthday: 1965 sex: "m"]
hallstrom: person.new [name: "Lasse Hallström" birthday: 1946 sex: "m"]
scorsese: person.new [name: "Martin Scorsese" birthday: 1942 sex: "m"]
sydow: person.new [name: "Max von Sydow" birthday: 1929 died: 2020 sex: "m" alive: false]
binoche: person.new [name: "Juliette Binoche" birthday: 1964 sex: "f"]
dench: person.new [name: "Judi Dench" birthday: 1934 sex: "f"]
eastwood: person.new [name: "Clint Eastwood" birthday: 1930 sex: "m"]
polanski: person.new [name: "Roman Polanski" birthday: 1933 sex: "m"]
olin: person.new [name: "Lena Olin" birthday: 1955 sex: "f"]
zimmer: person.new [name: "Hans Zimmer" birthday: 1957 sex: "m"]
pook: person.new [name: "Jocelyn Pook" birthday: 1960 sex: "f"]
lehane: person.new [name: "Dennis Lehane" birthday: 1965 sex: "m"]
penn: person.new [name: "Sean Penn" birthday: 1960 sex: "m"]
malick: person.new [name: "Terrence Malick" birthday: 1943 sex: "m"]
brody: person.new [name: "Adrien Brody" birthday: 1973 sex: "m"]
wach1: person.new [name: "Lana Wachowski" birthday: 1965 sex: "f"]
wach2: person.new [name: "Lilly Wachowski" birthday: 1967 sex: "f"]
memento: movie.new [title: "Memento" year: 2000]
inception: movie.new [title: "Inception" year: 2010]
laconfidential: movie.new [title: "L.A. Confidential" year: 1997]
matrix: movie.new [title: "The Matrix" year: 1999]
eyes: movie.new [title: "Eyes Wide Shut" year: 1999]
bigfish: movie.new [title: "Big Fish" year: 2003]
sleepyhollow: movie.new [title: "Sleepy Hollow" year: 1999]
chocolat: movie.new [title: "Chocolat" year: 2000]
jedgar: movie.new [title: "J. Edgar" year: 2011]
ninthgate: movie.new [title: "The Ninth Gate" year: 1999]
shutter: movie.new [title: "Shutter Island" year: 2010]
mystic: movie.new [title: "Mystic River" year: 2003]
redline: movie.new [title: "Thin Red Line" year: 1998]
pianist: movie.new [title: "The Pianist" year: 2002]
mysticB: book.new [title: "Mystic River" year: 2001 language: "en"]
;---------------------------------------------
; Define the relationships
; between our nodes
;---------------------------------------------
[nolan hardy dench pook] ~> 'isFrom uk
[pearce kidman] ~> 'isFrom au
[malick brody hanson spacey dicaprio wach1 wach2 cruise kubrick burton depp eastwood scorsese lehane penn] ~> 'isFrom us
moss ~> 'isFrom ca
[cotillard binoche] ~> 'isFrom fr
polanski ~> 'isFrom [fr pl]
[hallstrom olin sydow] ~> 'isFrom se
zimmer ~> 'isFrom de
nolan ~> 'directed [memento inception]
hanson ~> 'directed laconfidential
[wach1 wach2] ~> 'directed matrix
kubrick ~> 'directed eyes
burton ~> 'directed [bigfish sleepyhollow]
hallstrom ~> 'directed chocolat
eastwood ~> 'directed [jedgar mystic]
polanski ~> 'directed [pianist ninthgate]
scorsese ~> 'directed shutter
malick ~> 'directed [pianist redline]
pearce ~> 'actedIn [memento laconfidential]
spacey ~> 'actedIn laconfidential
[dicaprio hardy cotillard] ~> 'actedIn inception
[dicaprio sydow] ~> 'actedIn shutter
cotillard ~> 'actedIn bigfish
moss ~> 'actedIn [memento matrix chocolat]
[cruise kidman] ~> 'actedIn eyes
depp ~> 'actedIn [chocolat sleepyhollow]
[binoche dench olin] ~> 'actedIn chocolat
[dicaprio dench] ~> 'actedIn jedgar
[depp olin] ~> 'actedIn ninthgate
penn ~> 'actedIn [mystic redline]
brody ~> 'actedIn [redline pianist]
zimmer ~> 'composed inception
pook ~> 'composed eyes
nolan ~> 'written inception
lehane ~> 'written mysticB
mystic ~> 'basedOn mysticB
[redline bigfish memento laconfidential jedgar shutter mystic] ~> 'origin us
matrix ~> 'origin [us au]
[inception eyes chocolat] ~> 'origin [uk us]
sleepyhollow ~> 'origin [us de]
ninthgate ~> 'origin [us fr es]
pianist ~> 'origin [uk fr de pl]
wach1 ~> 'sibling wach2
cruise ~> 'married kidman
]
;---------------------------------------------
; Fetch every "person" &
; open the Desktop app for visualization
;---------------------------------------------
preview fetch 'person ø
]
]
```
## Try Grafito!
### Docker
The easiest way to try Grafito is using Docker (although, without support for the Desktop app - yet)
```
docker run -it arturolang/grafito
```
or, if you want to run a specific script:
```
docker run -it -v $(pwd):/home arturolang/grafito <yourscript>
```
### Installation
To install local, first you have to have installed the latest version of [Arturo](https://github.com/arturo-lang/arturo).
Then, just clone this repo and simply go to the folder via your terminal.
#### As a Library
After having installed the latest version of Arturo, you can use Grafito from any Arturo script as a library.
For example, here's how to run the above example:
```
arturo examples/sample11.art
```
#### As a Standalone tool
Of course, you can also run Grafito as a tool on it own:
```
./grafito.art <database>
```
(If you pass a name, it will use it as your database file. If not, the database will be in-memory)
<p align="center"><img width="100%" align="center" src="https://raw.githubusercontent.com/arturo-lang/grafito/master/console.png"/></p>
And you can see your lightweight graph engine in action!
## How To
### Create a simple Node
```red
graph.create "mygraph" [
put'person [name: "John" sex: 'm]
]
```
The exact same thing using node helpers:
```red
graph.create "mygraph"
.helpers: [person]
[
person.new [name: "John", sex: 'm]
]
```
### Create Relationships between Nodes
```red
graph.create "mygraph" [
john: put 'person [name: "John" sex: 'm]
joan: put 'person [name: "Joan" sex: 'f]
link john 'marriedTo joan
]
```
The exact same thing using node helpers and some syntactic sugar:
```red
graph.create "mygraph"
.helpers: [person]
[
john: person.new [name: "John", sex: 'm]
joan: person.new [name: "Joan", sex: 'f]
john <~> 'marriedTo joan
]
```
### Search Nodes
```red
graph "mygraph" [
inspect fetch 'person [name: "Joan"]
]
```
The exact same thing using node helpers:
```red
graph "mygraph"
.helpers: [person]
[
inspect person [name: "Joan"]
]
```
### Delete an existing Node
```red
graph "mygraph" [
unput fetch 'person [name: "John"]
]
```
### Delete an existing Relationship
```red
graph "mygraph" [
unlink fetch 'person [name: "John"] 'marriedTo
fetch 'person [name: "Joan"]
]
```
### Preview a Set of Nodes
```red
graph "mygraph" [
preview fetch 'person ø
]
```
(If you run the `sample4` in the *examples* folder, you'll be a minimal movie database. Running the command `preview` will open up the Desktop app with the image you see above ;-))
### More complex queries
```red
graph "mygraph" [
inspect fetch'person [
sex: "m"
marriedTo: fetch 'person [name: "Joan"]
]
]
```
The exact same thing using node helpers:
```red
graph "mygraph"
.helpers: [person]
[
inspect person [
sex: "m"
marriedTo: person [name: "Joan"]
]
]
```
#### Reverse edge queries
```red
; using our sample11.art graph
movie [
directed: <| person "Clint Eastwood"
]
```
#### Using filters
```red
graph "mygraph" [
fetch 'person [
surname:"Doe"
age: -> over: 30
]
]
```
### Not just a query language!
Now, let's be reminded that although Grafito may present itself as an easy-to-use
Graph Query Language, actually it's a "shell" on top of Arturo. That is: you can use anything you would normally use in a full-blown programming language, *along with* the extra layer that is Grafito. Awesome, right?
The above is a - very simple - example, but gives you definitely a rough idea (and no, [`union`](https://arturo-lang.io/documentation/library/sets/union/) has nothing to do with Grafito... it's just a normal command from Arturo's standard library)
```red
union
person [
sex: "m"
birthday: -> under: 1960
]
person [
sex: "f
isFrom: country "France"
]
```
(totally random example: Find all the men that were born before 1960 + all the women from... France!)
## Command Reference
All of the following commands must run within a `graph` environment. In order to set it up, use:
```red
graph <database> [
;; your code goes here
]
```
> ⚠️ The `graph` command is not needed when you run Grafito as a tool, since the "environment" is already set up for you. ;-)
If you pass `null` (or `ø`) then the database will be *in-memory*. If you want to save to a file on disk, then pass a string with the desired database name. If the database already exists, it will be re-opened. If not, it will be created from scratch.
> 💡 You may force the database to be re-created from scratch, regardless of whether it exists, by setting the `.create` attribute. E.g.
> ```
> graph.create "mygraph" [
> ;; your code goes here
> ]
> ```
### put
#### Description
Insert new node(s) to graph with given name and attributes.
#### Usage
<pre>
<b>put</b> <ins>name</ins> <i>:literal</i>, <i>:string</i>
<ins>attributes</ins> <i>:dictionary</i>, <i>:block</i>
</pre>
#### Returns
- *:dictionary* (node)
- *:block* (of nodes)
#### Examples
```red
put 'person [name: "John" surname: "Doe" birthday: 1986]
```
### unput
#### Description
Remove given node(s) from graph.
#### Usage
<pre>
<b>unput</b> <ins>node</ins> <i>:dictionary</i>, <i>:block</i>
</pre>
#### Examples
```red
x: put 'person [name: "John" surname: "Doe" birthday: 1986]
unput x
```
### link
#### Description
Create a connection from source to target node with given name.
#### Usage
<pre>
<b>link</b> <ins>source</ins> <i>:dictionary</i> (node), <i>:block</i> (of nodes)
<ins>name</ins> <i>:literal</i>, <i>:string</i>
<ins>target</ins> <i>:dictionary</i> (node), <i>:block</i> (of nodes)
</pre>
#### Returns
- *:dictionary* (edge)
#### Examples
```red
link put 'person [name: "John" surname: "Doe" birthday: 1986] 'marriedTo
put 'person [name: "Mary" surname: "Doe" birthday: 1986]
```
### unlink
#### Description
Remove connection from source to target node with given name
#### Usage
<pre>
<b>unlink</b> <ins>source</ins> <i>:dictionary</i> (node), <i>:block</i> (of nodes)
<ins>name</ins> <i>:literal</i>, <i>:string</i>
<ins>target</ins> <i>:dictionary</i> (node), <i>:block</i> (of nodes)
</pre>
#### Examples
```red
x: put 'person [name: "John" surname: "Doe" birthday: 1986]
y: put 'person [name: "Mary" surname: "Doe" birthday: 1986]
link 'marriedTo x y
unlink 'marriedTo x y
```
### fetch
#### Description
Retrieves nodes with name that match all given attributes.
#### Usage
<pre>
<b>fetch</b> <ins>name</ins> <i>:literal</i>, <i>:string</i>
<ins>properties</ins> <i>:block</i> <i>:dictionary</i> <i>:null</i>
</pre>
#### Returns
- *:block* of *:dictionary* (node)
#### Examples
```red
print fetch 'person [surname: "Doe"]
print fetch 'person [
surname: "Doe"
marriedTo: fetch'person [name: "Mary"]
]
```
### preview
#### Description
Preview given array of nodes in Desktop app.
#### Usage
<pre>
<b>preview</b> <ins>nodes</ins> <i>:block</i>
</pre>
#### Examples
```red
preview fetch 'person [surname: "Doe"]
```
## Filter Reference
When querying - e.g. with `fetch` or `what` - you can search for results, not only for exact matches, but also using one of the filters below.
```red
fetch'person [
surname: "Doe" ; here, we are looking for an exact match
; that is: people with the surname Doe
]
```
```red
fetch'person [
surname: [
contains: "D" ; here, we are using the 'contains filter
; that is: people whose surname contains the letter D
]
]
```
(The above, using Arturo's powerful syntax, could also be written like:
```red
fetch'person [ surname: -> contains: "D" ]
```
### contains
Get rows that *contain* the given text.
### prefix
Get rows that start with, or "have as prefix", the given text.
### suffix
Get rows that end with, or "have as suffix", the given text.
### over
Get rows with a numeric value *greater than* the given one.
### under
Get rows with a numeric value *less than* the given one.
### overOrEqual
Get rows with a numeric value *greater than or equal to* the given one.
### underOrEqual
Get rows with a numeric value *less than or equal to* the given one.
### in
Get rows with a numeric value *equal* to *one of those in* the given block.
### not
Get rows with a value *not equal to* the given one (or block of given values).
Community
------------------------------
In case you want to ask a question, suggest an idea, or practically anything related to Grafito (or Arturo) - feel free! Everything and everyone is welcome.
For that, the most convenient place for me would be the [GitHub Issues](https://github.com/arturo-lang/grafito/issues) page.
[](https://starchart.cc/arturo-lang/grafito)
## License
MIT License
Copyright (c) 2023 Yanis Zafirópulos
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: examples/sample1.art
================================================
;; Just run this with:
;; arturo sample.art
;;
;; This will create a local sample.db
;; along with the corresponding dot file
;; and its visualization as sample.png
;; - provided GraphViz is installed
;;
;; Have fun!
do.import "grafito.art"
do [
graph.create "sample1" [
john: put 'person [s: "John" sex: 'm]
joan: put 'person [s: "Joan" sex: 'f]
bob: put 'person [s: "Bob" sex: 'm]
jill: put 'person [s: "Jill" sex: 'f]
link'marriedTo john joan
link'childOf @[bob jill] @[john joan]
]
]
do [
benchmark [
graph.verbose "sample1" [
print "getting first person named Joan..."
joan: what'person [s: "Joan"]
inspect joan
print "getting all male people married to Joan..."
husband: what 'person [sex: 'm marriedTo: joan]
inspect husband
; inspect fetch 'person [
; marriedTo: what 'person [s: "Joan"]
; ]
preview fetch 'person ø
]
]
]
; do [
; graph "sample1" [
; preview fetch 'person ø
; ]
; ]
; execute ~"dot -Tpng sample.dot -o sample.png"
================================================
FILE: examples/sample10.art
================================================
do.import {grafito.art}
do [
;---------------------------------------------
; Set up a new graph environment
; with a local database named "sample4"
;---------------------------------------------
graph.create "sample10" [
j: put 'person [name: "John" age: 35]
n: put 'person [name: "Jane" age: 41]
link 'likes j n
preview fetch 'person ø
]
]
================================================
FILE: examples/sample11.art
================================================
;---------------------------------------------
; Import Grafito
; and ... let's rock'n'roll! :)
;---------------------------------------------
import ./{../grafito.art}
do [
;---------------------------------------------
; Set up a new graph environment
; with a local database named "sample11"
;---------------------------------------------
graph .helpers: [person movie country book]
.create
.palette: 'default
"sample11"
[
unless dbExists? [
;---------------------------------------------
; Populate the database
;---------------------------------------------
uk: country.new [name: "United Kingdom"]
au: country.new [name: "Australia"]
us: country.new [name: "United States"]
ca: country.new [name: "Canada"]
fr: country.new [name: "France"]
de: country.new [name: "Germany"]
se: country.new [name: "Sweden"]
es: country.new [name: "Spain"]
pl: country.new [name: "Poland"]
nolan: person.new [name: "Christopher Nolan" birthday: 1970 sex: "m"]
pearce: person.new [name: "Guy Pearce" birthday: 1967 sex: "m"]
hanson: person.new [name: "Curtis Hanson" birthday: 1945 sex: "m"]
spacey: person.new [name: "Kevin Spacey" birthday: 1959 sex: "m"]
dicaprio: person.new [name: "Leonardo DiCaprio" birthday: 1974 sex: "m"]
hardy: person.new [name: "Tom Hardy" birthday: 1977 sex: "m"]
cotillard: person.new [name: "Marion Cotillard" birthday: 1975 sex: "f"]
moss: person.new [name: "Carrie-Ann Moss" birthday: 1967 sex: "f"]
kidman: person.new [name: "Nicole Kidman" birthday: 1967 sex: "f"]
cruise: person.new [name: "Tom Cruise" birthday: 1962 sex: "m"]
kubrick: person.new [name: "Stanley Kubrick" birthday: 1928 died: 1999 sex: "m" alive: false]
burton: person.new [name: "Tim Burton" birthday: 1958 sex: "m"]
depp: person.new [name: "Johny Depp" birthday: 1965 sex: "m"]
hallstrom: person.new [name: "Lasse Hallström" birthday: 1946 sex: "m"]
scorsese: person.new [name: "Martin Scorsese" birthday: 1942 sex: "m"]
sydow: person.new [name: "Max von Sydow" birthday: 1929 died: 2020 sex: "m" alive: false]
binoche: person.new [name: "Juliette Binoche" birthday: 1964 sex: "f"]
dench: person.new [name: "Judi Dench" birthday: 1934 sex: "f"]
eastwood: person.new [name: "Clint Eastwood" birthday: 1930 sex: "m"]
polanski: person.new [name: "Roman Polanski" birthday: 1933 sex: "m"]
olin: person.new [name: "Lena Olin" birthday: 1955 sex: "f"]
zimmer: person.new [name: "Hans Zimmer" birthday: 1957 sex: "m"]
pook: person.new [name: "Jocelyn Pook" birthday: 1960 sex: "f"]
lehane: person.new [name: "Dennis Lehane" birthday: 1965 sex: "m"]
penn: person.new [name: "Sean Penn" birthday: 1960 sex: "m"]
malick: person.new [name: "Terrence Malick" birthday: 1943 sex: "m"]
brody: person.new [name: "Adrien Brody" birthday: 1973 sex: "m"]
wach1: person.new [name: "Lana Wachowski" birthday: 1965 sex: "f"]
wach2: person.new [name: "Lilly Wachowski" birthday: 1967 sex: "f"]
memento: movie.new [title: "Memento" year: 2000]
inception: movie.new [title: "Inception" year: 2010]
laconfidential: movie.new [title: "L.A. Confidential" year: 1997]
matrix: movie.new [title: "The Matrix" year: 1999]
eyes: movie.new [title: "Eyes Wide Shut" year: 1999]
bigfish: movie.new [title: "Big Fish" year: 2003]
sleepyhollow: movie.new [title: "Sleepy Hollow" year: 1999]
chocolat: movie.new [title: "Chocolat" year: 2000]
jedgar: movie.new [title: "J. Edgar" year: 2011]
ninthgate: movie.new [title: "The Ninth Gate" year: 1999]
shutter: movie.new [title: "Shutter Island" year: 2010]
mystic: movie.new [title: "Mystic River" year: 2003]
redline: movie.new [title: "Thin Red Line" year: 1998]
pianist: movie.new [title: "The Pianist" year: 2002]
mysticB: book.new [title: "Mystic River" year: 2001 language: "en"]
;---------------------------------------------
; Define the relationships
; between our nodes
;---------------------------------------------
[nolan hardy dench pook] ~> 'isFrom uk
[pearce kidman] ~> 'isFrom au
[malick brody hanson spacey dicaprio wach1 wach2 cruise kubrick burton depp eastwood scorsese lehane penn] ~> 'isFrom us
moss ~> 'isFrom ca
[cotillard binoche] ~> 'isFrom fr
polanski ~> 'isFrom [fr pl]
[hallstrom olin sydow] ~> 'isFrom se
zimmer ~> 'isFrom de
nolan ~> 'directed [memento inception]
hanson ~> 'directed laconfidential
[wach1 wach2] ~> 'directed matrix
kubrick ~> 'directed eyes
burton ~> 'directed [bigfish sleepyhollow]
hallstrom ~> 'directed chocolat
eastwood ~> 'directed [jedgar mystic]
polanski ~> 'directed [pianist ninthgate]
scorsese ~> 'directed shutter
malick ~> 'directed [pianist redline]
pearce ~> 'actedIn [memento laconfidential]
spacey ~> 'actedIn laconfidential
[dicaprio hardy cotillard] ~> 'actedIn inception
[dicaprio sydow] ~> 'actedIn shutter
cotillard ~> 'actedIn bigfish
moss ~> 'actedIn [memento matrix chocolat]
[cruise kidman] ~> 'actedIn eyes
depp ~> 'actedIn [chocolat sleepyhollow]
[binoche dench olin] ~> 'actedIn chocolat
[dicaprio dench] ~> 'actedIn jedgar
[depp olin] ~> 'actedIn ninthgate
penn ~> 'actedIn [mystic redline]
brody ~> 'actedIn [redline pianist]
zimmer ~> 'composed inception
pook ~> 'composed eyes
nolan ~> 'written inception
lehane ~> 'written mysticB
mystic ~> 'basedOn mysticB
[redline bigfish memento laconfidential jedgar shutter mystic] ~> 'origin us
matrix ~> 'origin [us au]
[inception eyes chocolat] ~> 'origin [uk us]
sleepyhollow ~> 'origin [us de]
ninthgate ~> 'origin [us fr es]
pianist ~> 'origin [uk fr de pl]
wach1 ~> 'sibling wach2
cruise ~> 'married kidman
]
;---------------------------------------------
; Fetch every "person" &
; open the Desktop app for visualization
;---------------------------------------------
preview fetch 'person ø
]
]
================================================
FILE: examples/sample12.art
================================================
do.import {grafito.art}
do [
;---------------------------------------------
; Set up a new graph environment
; with a local database named "sample11"
;---------------------------------------------
graph .helpers: [word]
.create
.palette: 'default
"sample12"
[
unless dbExists? [
'word [name: "for" lang: "en"]
{for_en}: put'word [name: {for}, lang: "en"]
{Because, as, since.}: put'sense [name: {Because, as, since.}]
[ {parce que_fr}, {car_fr}, {da_de}, {weil_de}, {denn_de}, {διότι_el}, {επειδή_el}, {γιατί_el}, {perché_it}, {poiché_it}, {porque_pt}, {pentru că_ro}, {căci_ro}, {porque_es}, {pues_es}, {como_es} ]: put.many 'word [ [name:{parce que}, lang:{fr}], [name:{car}, lang:{fr}], [name:{da}, lang:{de}], [name:{weil}, lang:{de}], [name:{denn}, lang:{de}], [name:{διότι}, lang:{el}], [name:{επειδή}, lang:{el}], [name:{γιατί}, lang:{el}], [name:{perché}, lang:{it}], [name:{poiché}, lang:{it}], [name:{porque}, lang:{pt}], [name:{pentru că}, lang:{ro}], [name:{căci}, lang:{ro}], [name:{porque}, lang:{es}], [name:{pues}, lang:{es}], [name:{como}, lang:{es}] ]
link [var{parce que_fr} var{car_fr} var{da_de} var{weil_de} var{denn_de} var{διότι_el} var{επειδή_el} var{γιατί_el} var{perché_it} var{poiché_it} var{porque_pt} var{pentru că_ro} var{căci_ro} var{porque_es} var{pues_es} var{como_es} var{for_en}] 'means var{Because, as, since.}
{Towards; in the direction of.}: put'sense [name: {Towards; in the direction of.}]
[ {pour_fr}, {zu_de}, {nach_de}, {για_el}, {per_it}, {verso_it}, {a_pt}, {para_pt}, {pentru_ro}, {a_es}, {hacia_es} ]: put.many 'word [ [name:{pour}, lang:{fr}], [name:{zu}, lang:{de}], [name:{nach}, lang:{de}], [name:{για}, lang:{el}], [name:{per}, lang:{it}], [name:{verso}, lang:{it}], [name:{a}, lang:{pt}], [name:{para}, lang:{pt}], [name:{pentru}, lang:{ro}], [name:{a}, lang:{es}], [name:{hacia}, lang:{es}] ]
link [var{parce que_fr} var{car_fr} var{da_de} var{weil_de} var{denn_de} var{διότι_el} var{επειδή_el} var{γιατί_el} var{perché_it} var{poiché_it} var{porque_pt} var{pentru că_ro} var{căci_ro} var{porque_es} var{pues_es} var{como_es} var{pour_fr} var{zu_de} var{nach_de} var{για_el} var{per_it} var{verso_it} var{a_pt} var{para_pt} var{pentru_ro} var{a_es} var{hacia_es} var{for_en}] 'means var{Towards; in the direction of.}
{Directed at; intended to belong to.}: put'sense [name: {Directed at; intended to belong to.}]
[ {pour_fr}, {für_de}, {για_el}, {per_it}, {para_pt}, {pentru_ro}, {para_es} ]: put.many 'word [ [name:{pour}, lang:{fr}], [name:{für}, lang:{de}], [name:{για}, lang:{el}], [name:{per}, lang:{it}], [name:{para}, lang:{pt}], [name:{pentru}, lang:{ro}], [name:{para}, lang:{es}] ]
link [var{parce que_fr} var{car_fr} var{da_de} var{weil_de} var{denn_de} var{διότι_el} var{επειδή_el} var{γιατί_el} var{perché_it} var{poiché_it} var{porque_pt} var{pentru că_ro} var{căci_ro} var{porque_es} var{pues_es} var{como_es} var{pour_fr} var{zu_de} var{nach_de} var{για_el} var{per_it} var{verso_it} var{a_pt} var{para_pt} var{pentru_ro} var{a_es} var{hacia_es} var{pour_fr} var{für_de} var{για_el} var{per_it} var{para_pt} var{pentru_ro} var{para_es} var{for_en}] 'means var{Directed at; intended to belong to.}
{In order to help, benefit, gratify, honor etc. (someone or something).}: put'sense [name: {In order to help, benefit, gratify, honor etc. (someone or something).}]
{To be used or treated in a stated way, or with a stated purpose.}: put'sense [name: {To be used or treated in a stated way, or with a stated purpose.}]
{Supporting, in favour of.}: put'sense [name: {Supporting, in favour of.}]
[ {pour_fr}, {für_de}, {υπέρ_el}, {pro_it}, {a favor de_pt}, {pentru_ro}, {por_es} ]: put.many 'word [ [name:{pour}, lang:{fr}], [name:{für}, lang:{de}], [name:{υπέρ}, lang:{el}], [name:{pro}, lang:{it}], [name:{a favor de}, lang:{pt}], [name:{pentru}, lang:{ro}], [name:{por}, lang:{es}] ]
link [var{parce que_fr} var{car_fr} var{da_de} var{weil_de} var{denn_de} var{διότι_el} var{επειδή_el} var{γιατί_el} var{perché_it} var{poiché_it} var{porque_pt} var{pentru că_ro} var{căci_ro} var{porque_es} var{pues_es} var{como_es} var{pour_fr} var{zu_de} var{nach_de} var{για_el} var{per_it} var{verso_it} var{a_pt} var{para_pt} var{pentru_ro} var{a_es} var{hacia_es} var{pour_fr} var{für_de} var{για_el} var{per_it} var{para_pt} var{pentru_ro} var{para_es} var{pour_fr} var{für_de} var{υπέρ_el} var{pro_it} var{a favor de_pt} var{pentru_ro} var{por_es} var{for_en}] 'means var{Supporting, in favour of.}
{Because of.}: put'sense [name: {Because of.}]
[ {pour_fr}, {wegen_de}, {για_el}, {λόγω_el}, {per_it}, {por causa de_pt}, {por_pt}, {por_es} ]: put.many 'word [ [name:{pour}, lang:{fr}], [name:{wegen}, lang:{de}], [name:{για}, lang:{el}], [name:{λόγω}, lang:{el}], [name:{per}, lang:{it}], [name:{por causa de}, lang:{pt}], [name:{por}, lang:{pt}], [name:{por}, lang:{es}] ]
link [var{parce que_fr} var{car_fr} var{da_de} var{weil_de} var{denn_de} var{διότι_el} var{επειδή_el} var{γιατί_el} var{perché_it} var{poiché_it} var{porque_pt} var{pentru că_ro} var{căci_ro} var{porque_es} var{pues_es} var{como_es} var{pour_fr} var{zu_de} var{nach_de} var{για_el} var{per_it} var{verso_it} var{a_pt} var{para_pt} var{pentru_ro} var{a_es} var{hacia_es} var{pour_fr} var{für_de} var{για_el} var{per_it} var{para_pt} var{pentru_ro} var{para_es} var{pour_fr} var{für_de} var{υπέρ_el} var{pro_it} var{a favor de_pt} var{pentru_ro} var{por_es} var{pour_fr} var{wegen_de} var{για_el} var{λόγω_el} var{per_it} var{por causa de_pt} var{por_pt} var{por_es} var{for_en}] 'means var{Because of.}
{Intended to cure, remove or counteract; in order to cure, remove or counteract.}: put'sense [name: {Intended to cure, remove or counteract; in order to cure, remove or counteract.}]
{Over (a period of time).}: put'sense [name: {Over (a period of time).}]
[ {depuis_fr}, {pendant_fr}, {seit_de}, {lang_de}, {-lang_de}, {tagelang etc._de}, {durante_it}, {por_pt}, {durante_pt}, {por_es}, {durante_es} ]: put.many 'word [ [name:{depuis}, lang:{fr}], [name:{pendant}, lang:{fr}], [name:{seit}, lang:{de}], [name:{lang}, lang:{de}], [name:{-lang}, lang:{de}], [name:{tagelang etc.}, lang:{de}], [name:{durante}, lang:{it}], [name:{por}, lang:{pt}], [name:{durante}, lang:{pt}], [name:{por}, lang:{es}], [name:{durante}, lang:{es}] ]
link [var{parce que_fr} var{car_fr} var{da_de} var{weil_de} var{denn_de} var{διότι_el} var{επειδή_el} var{γιατί_el} var{perché_it} var{poiché_it} var{porque_pt} var{pentru că_ro} var{căci_ro} var{porque_es} var{pues_es} var{como_es} var{pour_fr} var{zu_de} var{nach_de} var{για_el} var{per_it} var{verso_it} var{a_pt} var{para_pt} var{pentru_ro} var{a_es} var{hacia_es} var{pour_fr} var{für_de} var{για_el} var{per_it} var{para_pt} var{pentru_ro} var{para_es} var{pour_fr} var{für_de} var{υπέρ_el} var{pro_it} var{a favor de_pt} var{pentru_ro} var{por_es} var{pour_fr} var{wegen_de} var{για_el} var{λόγω_el} var{per_it} var{por causa de_pt} var{por_pt} var{por_es} var{depuis_fr} var{pendant_fr} var{seit_de} var{lang_de} var{-lang_de} var{tagelang etc._de} var{durante_it} var{por_pt} var{durante_pt} var{por_es} var{durante_es} var{for_en}] 'means var{Over (a period of time).}
{Throughout or across (a distance in space).}: put'sense [name: {Throughout or across (a distance in space).}]
{Used to introduce a subject within a to-infinitive clause.}: put'sense [name: {Used to introduce a subject within a to-infinitive clause.}]
{On behalf of.}: put'sense [name: {On behalf of.}]
{In the role or capacity of; instead of; in place of.}: put'sense [name: {In the role or capacity of; instead of; in place of.}]
{In exchange for; in correspondence or equivalence with.}: put'sense [name: {In exchange for; in correspondence or equivalence with.}]
{In order to obtain or acquire.}: put'sense [name: {In order to obtain or acquire.}]
[ {pour_fr}, {für_de}, {por_pt}, {por_es} ]: put.many 'word [ [name:{pour}, lang:{fr}], [name:{für}, lang:{de}], [name:{por}, lang:{pt}], [name:{por}, lang:{es}] ]
link [var{parce que_fr} var{car_fr} var{da_de} var{weil_de} var{denn_de} var{διότι_el} var{επειδή_el} var{γιατί_el} var{perché_it} var{poiché_it} var{porque_pt} var{pentru că_ro} var{căci_ro} var{porque_es} var{pues_es} var{como_es} var{pour_fr} var{zu_de} var{nach_de} var{για_el} var{per_it} var{verso_it} var{a_pt} var{para_pt} var{pentru_ro} var{a_es} var{hacia_es} var{pour_fr} var{für_de} var{για_el} var{per_it} var{para_pt} var{pentru_ro} var{para_es} var{pour_fr} var{für_de} var{υπέρ_el} var{pro_it} var{a favor de_pt} var{pentru_ro} var{por_es} var{pour_fr} var{wegen_de} var{για_el} var{λόγω_el} var{per_it} var{por causa de_pt} var{por_pt} var{por_es} var{depuis_fr} var{pendant_fr} var{seit_de} var{lang_de} var{-lang_de} var{tagelang etc._de} var{durante_it} var{por_pt} var{durante_pt} var{por_es} var{durante_es} var{pour_fr} var{für_de} var{por_pt} var{por_es} var{for_en}] 'means var{In order to obtain or acquire.}
{By the standards of, usually with the implication of those standards being lower than one might otherwise expect.}: put'sense [name: {By the standards of, usually with the implication of those standards being lower than one might otherwise expect.}]
[ {für_de}, {para_pt}, {para ser_es} ]: put.many 'word [ [name:{für}, lang:{de}], [name:{para}, lang:{pt}], [name:{para ser}, lang:{es}] ]
link [var{parce que_fr} var{car_fr} var{da_de} var{weil_de} var{denn_de} var{διότι_el} var{επειδή_el} var{γιατί_el} var{perché_it} var{poiché_it} var{porque_pt} var{pentru că_ro} var{căci_ro} var{porque_es} var{pues_es} var{como_es} var{pour_fr} var{zu_de} var{nach_de} var{για_el} var{per_it} var{verso_it} var{a_pt} var{para_pt} var{pentru_ro} var{a_es} var{hacia_es} var{pour_fr} var{für_de} var{για_el} var{per_it} var{para_pt} var{pentru_ro} var{para_es} var{pour_fr} var{für_de} var{υπέρ_el} var{pro_it} var{a favor de_pt} var{pentru_ro} var{por_es} var{pour_fr} var{wegen_de} var{για_el} var{λόγω_el} var{per_it} var{por causa de_pt} var{por_pt} var{por_es} var{depuis_fr} var{pendant_fr} var{seit_de} var{lang_de} var{-lang_de} var{tagelang etc._de} var{durante_it} var{por_pt} var{durante_pt} var{por_es} var{durante_es} var{pour_fr} var{für_de} var{por_pt} var{por_es} var{für_de} var{para_pt} var{para ser_es} var{for_en}] 'means var{By the standards of, usually with the implication of those standards being lower than one might otherwise expect.}
{To be, or as being.}: put'sense [name: {To be, or as being.}]
{Despite, in spite of.}: put'sense [name: {Despite, in spite of.}]
{Indicating something desired or anticipated.}: put'sense [name: {Indicating something desired or anticipated.}]
{Introducing the first item(s) in a potential sequence.}: put'sense [name: {Introducing the first item(s) in a potential sequence.}]
{In honor of; after.}: put'sense [name: {In honor of; after.}]
{Due or facing (a certain outcome or fate).}: put'sense [name: {Due or facing (a certain outcome or fate).}]
{Out of; used to indicate a fraction, a ratio}: put'sense [name: {Out of; used to indicate a fraction, a ratio}]
{Used as part of a score to indicate the number of wickets that have fallen.}: put'sense [name: {Used as part of a score to indicate the number of wickets that have fallen.}]
{Indicating that in prevention of which, or through fear of which, anything is done.}: put'sense [name: {Indicating that in prevention of which, or through fear of which, anything is done.}]
{Used in various more-or-less idiomatic ways to construe individual verbs, indicating various semantic relationships such as target, purpose, result, etc.; see also the entries for individual phrasal verbs, e.g. ask for, look for, stand for, etc.}: put'sense [name: {Used in various more-or-less idiomatic ways to construe individual verbs, indicating various semantic relationships such as target, purpose, result, etc.; see also the entries for individual phrasal verbs, e.g. ask for, look for, stand for, etc.}]
{So (that), in order to}: put'sense [name: {So (that), in order to}]
{To, the particle for marking the following verb as an infinitive.}: put'sense [name: {To, the particle for marking the following verb as an infinitive.}]
{desertification_en}: put'word [name: {desertification}, lang: "en"]
{The process by which a geographic region becomes a desert, resulting from natural changes in climate or by human activity.}: put'sense [name: {The process by which a geographic region becomes a desert, resulting from natural changes in climate or by human activity.}]
[ {désertification_fr}, {Desertifikation_de}, {fortschreitende Wüstenbildung_de}, {ερημοποίηση_el}, {desertificazione_it}, {desertificação_pt}, {desertificación_es} ]: put.many 'word [ [name:{désertification}, lang:{fr}], [name:{Desertifikation}, lang:{de}], [name:{fortschreitende Wüstenbildung}, lang:{de}], [name:{ερημοποίηση}, lang:{el}], [name:{desertificazione}, lang:{it}], [name:{desertificação}, lang:{pt}], [name:{desertificación}, lang:{es}] ]
link [var{désertification_fr} var{Desertifikation_de} var{fortschreitende Wüstenbildung_de} var{ερημοποίηση_el} var{desertificazione_it} var{desertificação_pt} var{desertificación_es} var{desertification_en}] 'means var{The process by which a geographic region becomes a desert, resulting from natural changes in climate or by human activity.}
{acute_en}: put'word [name: {acute}, lang: "en"]
{Brief, quick, short.}: put'sense [name: {Brief, quick, short.}]
{High or shrill.}: put'sense [name: {High or shrill.}]
{Intense, sensitive, sharp.}: put'sense [name: {Intense, sensitive, sharp.}]
[ {aigu_fr}, {aiguë_fr}, {scharf_de}, {οξύς_el}, {agudo_pt}, {agudo_es}, {perspicaz_es}, {sagaz_es} ]: put.many 'word [ [name:{aigu}, lang:{fr}], [name:{aiguë}, lang:{fr}], [name:{scharf}, lang:{de}], [name:{οξύς}, lang:{el}], [name:{agudo}, lang:{pt}], [name:{agudo}, lang:{es}], [name:{perspicaz}, lang:{es}], [name:{sagaz}, lang:{es}] ]
link [var{aigu_fr} var{aiguë_fr} var{scharf_de} var{οξύς_el} var{agudo_pt} var{agudo_es} var{perspicaz_es} var{sagaz_es} var{acute_en}] 'means var{Intense, sensitive, sharp.}
{Urgent.}: put'sense [name: {Urgent.}]
[ {urgente_pt}, {grave_es} ]: put.many 'word [ [name:{urgente}, lang:{pt}], [name:{grave}, lang:{es}] ]
link [var{aigu_fr} var{aiguë_fr} var{scharf_de} var{οξύς_el} var{agudo_pt} var{agudo_es} var{perspicaz_es} var{sagaz_es} var{urgente_pt} var{grave_es} var{acute_en}] 'means var{Urgent.}
{With the sides meeting directly to form an acute angle (at an apex or base).}: put'sense [name: {With the sides meeting directly to form an acute angle (at an apex or base).}]
{Of an angle: less than 90 degrees.}: put'sense [name: {Of an angle: less than 90 degrees.}]
[ {aigu_fr}, {spitz_de}, {οξύς_el}, {acuto_it}, {agudo_pt}, {ascuțit_ro}, {agudo_es} ]: put.many 'word [ [name:{aigu}, lang:{fr}], [name:{spitz}, lang:{de}], [name:{οξύς}, lang:{el}], [name:{acuto}, lang:{it}], [name:{agudo}, lang:{pt}], [name:{ascuțit}, lang:{ro}], [name:{agudo}, lang:{es}] ]
link [var{aigu_fr} var{aiguë_fr} var{scharf_de} var{οξύς_el} var{agudo_pt} var{agudo_es} var{perspicaz_es} var{sagaz_es} var{urgente_pt} var{grave_es} var{aigu_fr} var{spitz_de} var{οξύς_el} var{acuto_it} var{agudo_pt} var{ascuțit_ro} var{agudo_es} var{acute_en}] 'means var{Of an angle: less than 90 degrees.}
{Of a triangle: having all three interior angles measuring less than 90 degrees.}: put'sense [name: {Of a triangle: having all three interior angles measuring less than 90 degrees.}]
{Of an accent or tone: generally higher than others.}: put'sense [name: {Of an accent or tone: generally higher than others.}]
{Of an abnormal condition of recent or sudden onset, in contrast to delayed onset; this sense does not imply severity, unlike the common usage.}: put'sense [name: {Of an abnormal condition of recent or sudden onset, in contrast to delayed onset; this sense does not imply severity, unlike the common usage.}]
[ {aigu_fr}, {akut_de}, {agudo_pt} ]: put.many 'word [ [name:{aigu}, lang:{fr}], [name:{akut}, lang:{de}], [name:{agudo}, lang:{pt}] ]
link [var{aigu_fr} var{aiguë_fr} var{scharf_de} var{οξύς_el} var{agudo_pt} var{agudo_es} var{perspicaz_es} var{sagaz_es} var{urgente_pt} var{grave_es} var{aigu_fr} var{spitz_de} var{οξύς_el} var{acuto_it} var{agudo_pt} var{ascuțit_ro} var{agudo_es} var{aigu_fr} var{akut_de} var{agudo_pt} var{acute_en}] 'means var{Of an abnormal condition of recent or sudden onset, in contrast to delayed onset; this sense does not imply severity, unlike the common usage.}
{Of a short-lived condition, in contrast to a chronic condition; this sense also does not imply severity.}: put'sense [name: {Of a short-lived condition, in contrast to a chronic condition; this sense also does not imply severity.}]
[ {aigu_fr}, {οξύς_el}, {agudo_pt} ]: put.many 'word [ [name:{aigu}, lang:{fr}], [name:{οξύς}, lang:{el}], [name:{agudo}, lang:{pt}] ]
link [var{aigu_fr} var{aiguë_fr} var{scharf_de} var{οξύς_el} var{agudo_pt} var{agudo_es} var{perspicaz_es} var{sagaz_es} var{urgente_pt} var{grave_es} var{aigu_fr} var{spitz_de} var{οξύς_el} var{acuto_it} var{agudo_pt} var{ascuțit_ro} var{agudo_es} var{aigu_fr} var{akut_de} var{agudo_pt} var{aigu_fr} var{οξύς_el} var{agudo_pt} var{acute_en}] 'means var{Of a short-lived condition, in contrast to a chronic condition; this sense also does not imply severity.}
{After a letter of the alphabet: having an acute accent.}: put'sense [name: {After a letter of the alphabet: having an acute accent.}]
[ {aigu_fr} ]: put.many 'word [ [name:{aigu}, lang:{fr}] ]
link [var{aigu_fr} var{aiguë_fr} var{scharf_de} var{οξύς_el} var{agudo_pt} var{agudo_es} var{perspicaz_es} var{sagaz_es} var{urgente_pt} var{grave_es} var{aigu_fr} var{spitz_de} var{οξύς_el} var{acuto_it} var{agudo_pt} var{ascuțit_ro} var{agudo_es} var{aigu_fr} var{akut_de} var{agudo_pt} var{aigu_fr} var{οξύς_el} var{agudo_pt} var{aigu_fr} var{acute_en}] 'means var{After a letter of the alphabet: having an acute accent.}
{A person who has the acute form of a disorder, such as schizophrenia.}: put'sense [name: {A person who has the acute form of a disorder, such as schizophrenia.}]
{An accent or tone higher than others.}: put'sense [name: {An accent or tone higher than others.}]
{An acute accent (´).}: put'sense [name: {An acute accent (´).}]
{To give an acute sound to.}: put'sense [name: {To give an acute sound to.}]
{To make acute; to sharpen, to whet.}: put'sense [name: {To make acute; to sharpen, to whet.}]
{humble_en}: put'word [name: {humble}, lang: "en"]
{Not pretentious or magnificent; unpretending; unassuming.}: put'sense [name: {Not pretentious or magnificent; unpretending; unassuming.}]
{Having a low opinion of oneself; not proud, arrogant, or assuming; modest.}: put'sense [name: {Having a low opinion of oneself; not proud, arrogant, or assuming; modest.}]
[ {humble_fr}, {demütig_de}, {bescheiden_de}, {umile_it}, {modesto_it}, {humilde_pt}, {umil_ro}, {modesto_es}, {humilde_es} ]: put.many 'word [ [name:{humble}, lang:{fr}], [name:{demütig}, lang:{de}], [name:{bescheiden}, lang:{de}], [name:{umile}, lang:{it}], [name:{modesto}, lang:{it}], [name:{humilde}, lang:{pt}], [name:{umil}, lang:{ro}], [name:{modesto}, lang:{es}], [name:{humilde}, lang:{es}] ]
link [var{humble_fr} var{demütig_de} var{bescheiden_de} var{umile_it} var{modesto_it} var{humilde_pt} var{umil_ro} var{modesto_es} var{humilde_es} var{humble_en}] 'means var{Having a low opinion of oneself; not proud, arrogant, or assuming; modest.}
{To defeat or reduce the power, independence, or pride of}: put'sense [name: {To defeat or reduce the power, independence, or pride of}]
{To make humble or lowly; to make less proud or arrogant; to make meek and submissive.}: put'sense [name: {To make humble or lowly; to make less proud or arrogant; to make meek and submissive.}]
[ {erniedrigen_de}, {demütig machen_de}, {umili_ro} ]: put.many 'word [ [name:{erniedrigen}, lang:{de}], [name:{demütig machen}, lang:{de}], [name:{umili}, lang:{ro}] ]
link [var{humble_fr} var{demütig_de} var{bescheiden_de} var{umile_it} var{modesto_it} var{humilde_pt} var{umil_ro} var{modesto_es} var{humilde_es} var{erniedrigen_de} var{demütig machen_de} var{umili_ro} var{humble_en}] 'means var{To make humble or lowly; to make less proud or arrogant; to make meek and submissive.}
{An arrest based on weak evidence intended to demean or punish the subject.}: put'sense [name: {An arrest based on weak evidence intended to demean or punish the subject.}]
{To hum.}: put'sense [name: {To hum.}]
{Alternative form of hummel.}: put'sense [name: {Alternative form of hummel.}]
{Alternative form of hummel.}: put'sense [name: {Alternative form of hummel.}]
{million_en}: put'word [name: {million}, lang: "en"]
{The cardinal number 1,000,000: 10⁶; a thousand thousand.}: put'sense [name: {The cardinal number 1,000,000: 10⁶; a thousand thousand.}]
[ {million_fr}, {Million_de}, {εκατομμύριο_el}, {milione_it}, {milhão_pt}, {milion_ro}, {millón_es} ]: put.many 'word [ [name:{million}, lang:{fr}], [name:{Million}, lang:{de}], [name:{εκατομμύριο}, lang:{el}], [name:{milione}, lang:{it}], [name:{milhão}, lang:{pt}], [name:{milion}, lang:{ro}], [name:{millón}, lang:{es}] ]
link [var{million_fr} var{Million_de} var{εκατομμύριο_el} var{milione_it} var{milhão_pt} var{milion_ro} var{millón_es} var{million_en}] 'means var{The cardinal number 1,000,000: 10⁶; a thousand thousand.}
{An unspecified very large number.}: put'sense [name: {An unspecified very large number.}]
{before_en}: put'word [name: {before}, lang: "en"]
{Earlier than (in time).}: put'sense [name: {Earlier than (in time).}]
[ {avant_fr}, {avant que_fr}, {vor_de}, {πριν_el}, {prima_it}, {innanzi_it}, {antes de_pt}, {înainte_ro}, {anterior_ro}, {antes de_es}, {antes que_es} ]: put.many 'word [ [name:{avant}, lang:{fr}], [name:{avant que}, lang:{fr}], [name:{vor}, lang:{de}], [name:{πριν}, lang:{el}], [name:{prima}, lang:{it}], [name:{innanzi}, lang:{it}], [name:{antes de}, lang:{pt}], [name:{înainte}, lang:{ro}], [name:{anterior}, lang:{ro}], [name:{antes de}, lang:{es}], [name:{antes que}, lang:{es}] ]
link [var{avant_fr} var{avant que_fr} var{vor_de} var{πριν_el} var{prima_it} var{innanzi_it} var{antes de_pt} var{înainte_ro} var{anterior_ro} var{antes de_es} var{antes que_es} var{before_en}] 'means var{Earlier than (in time).}
{In front of in space.}: put'sense [name: {In front of in space.}]
[ {devant_fr}, {vor_de}, {μπροστά σε_el}, {μπροστά από_el}, {davanti_it}, {innanzi_it}, {ante_pt}, {em frente a_pt}, {na frente de_pt}, {diante de_pt}, {înainte_ro}, {în față_ro}, {ante_es}, {frente a_es}, {enfrente de_es} ]: put.many 'word [ [name:{devant}, lang:{fr}], [name:{vor}, lang:{de}], [name:{μπροστά σε}, lang:{el}], [name:{μπροστά από}, lang:{el}], [name:{davanti}, lang:{it}], [name:{innanzi}, lang:{it}], [name:{ante}, lang:{pt}], [name:{em frente a}, lang:{pt}], [name:{na frente de}, lang:{pt}], [name:{diante de}, lang:{pt}], [name:{înainte}, lang:{ro}], [name:{în față}, lang:{ro}], [name:{ante}, lang:{es}], [name:{frente a}, lang:{es}], [name:{enfrente de}, lang:{es}] ]
link [var{avant_fr} var{avant que_fr} var{vor_de} var{πριν_el} var{prima_it} var{innanzi_it} var{antes de_pt} var{înainte_ro} var{anterior_ro} var{antes de_es} var{antes que_es} var{devant_fr} var{vor_de} var{μπροστά σε_el} var{μπροστά από_el} var{davanti_it} var{innanzi_it} var{ante_pt} var{em frente a_pt} var{na frente de_pt} var{diante de_pt} var{înainte_ro} var{în față_ro} var{ante_es} var{frente a_es} var{enfrente de_es} var{before_en}] 'means var{In front of in space.}
{In the presence of.}: put'sense [name: {In the presence of.}]
{Under consideration, judgment, authority of (someone).}: put'sense [name: {Under consideration, judgment, authority of (someone).}]
{In store for, in the future of (someone).}: put'sense [name: {In store for, in the future of (someone).}]
{In front of, according to a formal system of ordering items.}: put'sense [name: {In front of, according to a formal system of ordering items.}]
[ {avant_fr}, {vor_de}, {antes de_pt}, {antes de_es} ]: put.many 'word [ [name:{avant}, lang:{fr}], [name:{vor}, lang:{de}], [name:{antes de}, lang:{pt}], [name:{antes de}, lang:{es}] ]
link [var{avant_fr} var{avant que_fr} var{vor_de} var{πριν_el} var{prima_it} var{innanzi_it} var{antes de_pt} var{înainte_ro} var{anterior_ro} var{antes de_es} var{antes que_es} var{devant_fr} var{vor_de} var{μπροστά σε_el} var{μπροστά από_el} var{davanti_it} var{innanzi_it} var{ante_pt} var{em frente a_pt} var{na frente de_pt} var{diante de_pt} var{înainte_ro} var{în față_ro} var{ante_es} var{frente a_es} var{enfrente de_es} var{avant_fr} var{vor_de} var{antes de_pt} var{antes de_es} var{before_en}] 'means var{In front of, according to a formal system of ordering items.}
{At a higher or greater position than, in a ranking.}: put'sense [name: {At a higher or greater position than, in a ranking.}]
{At an earlier time.}: put'sense [name: {At an earlier time.}]
[ {avant_fr}, {zuvor_de}, {vorher_de}, {prima_it}, {antes_pt}, {înainte_ro} ]: put.many 'word [ [name:{avant}, lang:{fr}], [name:{zuvor}, lang:{de}], [name:{vorher}, lang:{de}], [name:{prima}, lang:{it}], [name:{antes}, lang:{pt}], [name:{înainte}, lang:{ro}] ]
link [var{avant_fr} var{avant que_fr} var{vor_de} var{πριν_el} var{prima_it} var{innanzi_it} var{antes de_pt} var{înainte_ro} var{anterior_ro} var{antes de_es} var{antes que_es} var{devant_fr} var{vor_de} var{μπροστά σε_el} var{μπροστά από_el} var{davanti_it} var{innanzi_it} var{ante_pt} var{em frente a_pt} var{na frente de_pt} var{diante de_pt} var{înainte_ro} var{în față_ro} var{ante_es} var{frente a_es} var{enfrente de_es} var{avant_fr} var{vor_de} var{antes de_pt} var{antes de_es} var{avant_fr} var{zuvor_de} var{vorher_de} var{prima_it} var{antes_pt} var{înainte_ro} var{before_en}] 'means var{At an earlier time.}
{In advance.}: put'sense [name: {In advance.}]
[ {eher_de}, {im Voraus_de}, {primeiro_pt}, {în avans_ro} ]: put.many 'word [ [name:{eher}, lang:{de}], [name:{im Voraus}, lang:{de}], [name:{primeiro}, lang:{pt}], [name:{în avans}, lang:{ro}] ]
link [var{avant_fr} var{avant que_fr} var{vor_de} var{πριν_el} var{prima_it} var{innanzi_it} var{antes de_pt} var{înainte_ro} var{anterior_ro} var{antes de_es} var{antes que_es} var{devant_fr} var{vor_de} var{μπροστά σε_el} var{μπροστά από_el} var{davanti_it} var{innanzi_it} var{ante_pt} var{em frente a_pt} var{na frente de_pt} var{diante de_pt} var{înainte_ro} var{în față_ro} var{ante_es} var{frente a_es} var{enfrente de_es} var{avant_fr} var{vor_de} var{antes de_pt} var{antes de_es} var{avant_fr} var{zuvor_de} var{vorher_de} var{prima_it} var{antes_pt} var{înainte_ro} var{eher_de} var{im Voraus_de} var{primeiro_pt} var{în avans_ro} var{before_en}] 'means var{In advance.}
{At the front end.}: put'sense [name: {At the front end.}]
[ {vorn_de}, {vorne_de} ]: put.many 'word [ [name:{vorn}, lang:{de}], [name:{vorne}, lang:{de}] ]
link [var{avant_fr} var{avant que_fr} var{vor_de} var{πριν_el} var{prima_it} var{innanzi_it} var{antes de_pt} var{înainte_ro} var{anterior_ro} var{antes de_es} var{antes que_es} var{devant_fr} var{vor_de} var{μπροστά σε_el} var{μπροστά από_el} var{davanti_it} var{innanzi_it} var{ante_pt} var{em frente a_pt} var{na frente de_pt} var{diante de_pt} var{înainte_ro} var{în față_ro} var{ante_es} var{frente a_es} var{enfrente de_es} var{avant_fr} var{vor_de} var{antes de_pt} var{antes de_es} var{avant_fr} var{zuvor_de} var{vorher_de} var{prima_it} var{antes_pt} var{înainte_ro} var{eher_de} var{im Voraus_de} var{primeiro_pt} var{în avans_ro} var{vorn_de} var{vorne_de} var{before_en}] 'means var{At the front end.}
{In advance of the time when.}: put'sense [name: {In advance of the time when.}]
[ {avant que_fr}, {bevor_de}, {prima_it}, {antes de que_es} ]: put.many 'word [ [name:{avant que}, lang:{fr}], [name:{bevor}, lang:{de}], [name:{prima}, lang:{it}], [name:{antes de que}, lang:{es}] ]
link [var{avant_fr} var{avant que_fr} var{vor_de} var{πριν_el} var{prima_it} var{innanzi_it} var{antes de_pt} var{înainte_ro} var{anterior_ro} var{antes de_es} var{antes que_es} var{devant_fr} var{vor_de} var{μπροστά σε_el} var{μπροστά από_el} var{davanti_it} var{innanzi_it} var{ante_pt} var{em frente a_pt} var{na frente de_pt} var{diante de_pt} var{înainte_ro} var{în față_ro} var{ante_es} var{frente a_es} var{enfrente de_es} var{avant_fr} var{vor_de} var{antes de_pt} var{antes de_es} var{avant_fr} var{zuvor_de} var{vorher_de} var{prima_it} var{antes_pt} var{înainte_ro} var{eher_de} var{im Voraus_de} var{primeiro_pt} var{în avans_ro} var{vorn_de} var{vorne_de} var{avant que_fr} var{bevor_de} var{prima_it} var{antes de que_es} var{before_en}] 'means var{In advance of the time when.}
{Rather or sooner than.}: put'sense [name: {Rather or sooner than.}]
[ {bevor_de} ]: put.many 'word [ [name:{bevor}, lang:{de}] ]
link [var{avant_fr} var{avant que_fr} var{vor_de} var{πριν_el} var{prima_it} var{innanzi_it} var{antes de_pt} var{înainte_ro} var{anterior_ro} var{antes de_es} var{antes que_es} var{devant_fr} var{vor_de} var{μπροστά σε_el} var{μπροστά από_el} var{davanti_it} var{innanzi_it} var{ante_pt} var{em frente a_pt} var{na frente de_pt} var{diante de_pt} var{înainte_ro} var{în față_ro} var{ante_es} var{frente a_es} var{enfrente de_es} var{avant_fr} var{vor_de} var{antes de_pt} var{antes de_es} var{avant_fr} var{zuvor_de} var{vorher_de} var{prima_it} var{antes_pt} var{înainte_ro} var{eher_de} var{im Voraus_de} var{primeiro_pt} var{în avans_ro} var{vorn_de} var{vorne_de} var{avant que_fr} var{bevor_de} var{prima_it} var{antes de que_es} var{bevor_de} var{before_en}] 'means var{Rather or sooner than.}
{overall_en}: put'word [name: {overall}, lang: "en"]
{All-encompassing, all around.}: put'sense [name: {All-encompassing, all around.}]
[ {global_fr}, {total_fr}, {Gesamt-_de}, {complessivo_it}, {globale_it}, {generale_it}, {abrangente_pt}, {geral_pt}, {total_es}, {completo_es}, {general_es} ]: put.many 'word [ [name:{global}, lang:{fr}], [name:{total}, lang:{fr}], [name:{Gesamt-}, lang:{de}], [name:{complessivo}, lang:{it}], [name:{globale}, lang:{it}], [name:{generale}, lang:{it}], [name:{abrangente}, lang:{pt}], [name:{geral}, lang:{pt}], [name:{total}, lang:{es}], [name:{completo}, lang:{es}], [name:{general}, lang:{es}] ]
link [var{global_fr} var{total_fr} var{Gesamt-_de} var{complessivo_it} var{globale_it} var{generale_it} var{abrangente_pt} var{geral_pt} var{total_es} var{completo_es} var{general_es} var{overall_en}] 'means var{All-encompassing, all around.}
{Generally; with everything considered.}: put'sense [name: {Generally; with everything considered.}]
[ {en général_fr}, {insgesamt_de}, {tutto sommato_it}, {in generale_it}, {complessivamente_it}, {nell'insieme_it}, {em geral_pt}, {sobretodo_es}, {totalmente_es}, {completamente_es} ]: put.many 'word [ [name:{en général}, lang:{fr}], [name:{insgesamt}, lang:{de}], [name:{tutto sommato}, lang:{it}], [name:{in generale}, lang:{it}], [name:{complessivamente}, lang:{it}], [name:{nell'insieme}, lang:{it}], [name:{em geral}, lang:{pt}], [name:{sobretodo}, lang:{es}], [name:{totalmente}, lang:{es}], [name:{completamente}, lang:{es}] ]
link [var{global_fr} var{total_fr} var{Gesamt-_de} var{complessivo_it} var{globale_it} var{generale_it} var{abrangente_pt} var{geral_pt} var{total_es} var{completo_es} var{general_es} var{en général_fr} var{insgesamt_de} var{tutto sommato_it} var{in generale_it} var{complessivamente_it} var{nell'insieme_it} var{em geral_pt} var{sobretodo_es} var{totalmente_es} var{completamente_es} var{overall_en}] 'means var{Generally; with everything considered.}
{A garment worn over other clothing to protect it; a coverall or boiler suit. A garment, for manual labor or for casual wear, often made of a single piece of fabric, with long legs and a bib upper, supported from the shoulders with straps, and having several large pockets and loops for carrying tools.}: put'sense [name: {A garment worn over other clothing to protect it; a coverall or boiler suit. A garment, for manual labor or for casual wear, often made of a single piece of fabric, with long legs and a bib upper, supported from the shoulders with straps, and having several large pockets and loops for carrying tools.}]
[ {blouse_fr}, {combinaison_fr}, {salopette_fr}, {Overall_de}, {Latzhose_de}, {blusa_it}, {tuta da lavoro_it}, {macacão_pt}, {braga_es}, {mono_es}, {overol_es} ]: put.many 'word [ [name:{blouse}, lang:{fr}], [name:{combinaison}, lang:{fr}], [name:{salopette}, lang:{fr}], [name:{Overall}, lang:{de}], [name:{Latzhose}, lang:{de}], [name:{blusa}, lang:{it}], [name:{tuta da lavoro}, lang:{it}], [name:{macacão}, lang:{pt}], [name:{braga}, lang:{es}], [name:{mono}, lang:{es}], [name:{overol}, lang:{es}] ]
link [var{global_fr} var{total_fr} var{Gesamt-_de} var{complessivo_it} var{globale_it} var{generale_it} var{abrangente_pt} var{geral_pt} var{total_es} var{completo_es} var{general_es} var{en général_fr} var{insgesamt_de} var{tutto sommato_it} var{in generale_it} var{complessivamente_it} var{nell'insieme_it} var{em geral_pt} var{sobretodo_es} var{totalmente_es} var{completamente_es} var{blouse_fr} var{combinaison_fr} var{salopette_fr} var{Overall_de} var{Latzhose_de} var{blusa_it} var{tuta da lavoro_it} var{macacão_pt} var{braga_es} var{mono_es} var{overol_es} var{overall_en}] 'means var{A garment worn over other clothing to protect it; a coverall or boiler suit. A garment, for manual labor or for casual wear, often made of a single piece of fabric, with long legs and a bib upper, supported from the shoulders with straps, and having several large pockets and loops for carrying tools.}
{A garment, worn for manual labor, with an integral covering extending to the chest, supported by straps.}: put'sense [name: {A garment, worn for manual labor, with an integral covering extending to the chest, supported by straps.}]
{do_en}: put'word [name: {do}, lang: "en"]
{A syntactic marker.}: put'sense [name: {A syntactic marker.}]
{A syntactic marker.}: put'sense [name: {A syntactic marker.}]
[ {_fr}, {_de}, {_it}, {_pt}, {_es} ]: put.many 'word [ [name:{}, lang:{fr}], [name:{}, lang:{de}], [name:{}, lang:{it}], [name:{}, lang:{pt}], [name:{}, lang:{es}] ]
link [var{_fr} var{_de} var{_it} var{_pt} var{_es} var{do_en}] 'means var{A syntactic marker.}
{A syntactic marker.}: put'sense [name: {A syntactic marker.}]
[ {schon_de}, {sim_pt}, {sí_es} ]: put.many 'word [ [name:{schon}, lang:{de}], [name:{sim}, lang:{pt}], [name:{sí}, lang:{es}] ]
link [var{_fr} var{_de} var{_it} var{_pt} var{_es} var{schon_de} var{sim_pt} var{sí_es} var{do_en}] 'means var{A syntactic marker.}
{A syntactic marker.}: put'sense [name: {A syntactic marker.}]
[ {_fr}, {_de}, {_it}, {_pt}, {_es} ]: put.many 'word [ [name:{}, lang:{fr}], [name:{}, lang:{de}], [name:{}, lang:{it}], [name:{}, lang:{pt}], [name:{}, lang:{es}] ]
link [var{_fr} var{_de} var{_it} var{_pt} var{_es} var{schon_de} var{sim_pt} var{sí_es} var{_fr} var{_de} var{_it} var{_pt} var{_es} var{do_en}] 'means var{A syntactic marker.}
{To perform; to execute.}: put'sense [name: {To perform; to execute.}]
[ {faire_fr}, {tun_de}, {machen_de}, {κάμνω_el}, {κάνω_el}, {fare_it}, {fazer_pt}, {realizar_pt}, {face_ro}, {hacer_es}, {fazer_pt} ]: put.many 'word [ [name:{faire}, lang:{fr}], [name:{tun}, lang:{de}], [name:{machen}, lang:{de}], [name:{κάμνω}, lang:{el}], [name:{κάνω}, lang:{el}], [name:{fare}, lang:{it}], [name:{fazer}, lang:{pt}], [name:{realizar}, lang:{pt}], [name:{face}, lang:{ro}], [name:{hacer}, lang:{es}], [name:{fazer}, lang:{pt}] ]
link [var{_fr} var{_de} var{_it} var{_pt} var{_es} var{schon_de} var{sim_pt} var{sí_es} var{_fr} var{_de} var{_it} var{_pt} var{_es} var{faire_fr} var{tun_de} var{machen_de} var{κάμνω_el} var{κάνω_el} var{fare_it} var{fazer_pt} var{realizar_pt} var{face_ro} var{hacer_es} var{fazer_pt} var{do_en}] 'means var{To perform; to execute.}
{To cause, make (someone) (do something).}: put'sense [name: {To cause, make (someone) (do something).}]
{To suffice.}: put'sense [name: {To suffice.}]
[ {aller_fr}, {reichen_de}, {servir_pt}, {valer_es} ]: put.many 'word [ [name:{aller}, lang:{fr}], [name:{reichen}, lang:{de}], [name:{servir}, lang:{pt}], [name:{valer}, lang:{es}] ]
link [var{_fr} var{_de} var{_it} var{_pt} var{_es} var{schon_de} var{sim_pt} var{sí_es} var{_fr} var{_de} var{_it} var{_pt} var{_es} var{faire_fr} var{tun_de} var{machen_de} var{κάμνω_el} var{κάνω_el} var{fare_it} var{fazer_pt} var{realizar_pt} var{face_ro} var{hacer_es} var{fazer_pt} var{aller_fr} var{reichen_de} var{servir_pt} var{valer_es} var{do_en}] 'means var{To suffice.}
{To be reasonable or acceptable.}: put'sense [name: {To be reasonable or acceptable.}]
[ {aller_fr}, {andare_it}, {servir_pt}, {valer_es} ]: put.many 'word [ [name:{aller}, lang:{fr}], [name:{andare}, lang:{it}], [name:{servir}, lang:{pt}], [name:{valer}, lang:{es}] ]
link [var{_fr} var{_de} var{_it} var{_pt} var{_es} var{schon_de} var{sim_pt} var{sí_es} var{_fr} var{_de} var{_it} var{_pt} var{_es} var{faire_fr} var{tun_de} var{machen_de} var{κάμνω_el} var{κάνω_el} var{fare_it} var{fazer_pt} var{realizar_pt} var{face_ro} var{hacer_es} var{fazer_pt} var{aller_fr} var{reichen_de} var{servir_pt} var{valer_es} var{aller_fr} var{andare_it} var{servir_pt} var{valer_es} var{do_en}] 'means var{To be reasonable or acceptable.}
{To have (as an effect).}: put'sense [name: {To have (as an effect).}]
[ {fazer_pt} ]: put.many 'word [ [name:{fazer}, lang:{pt}] ]
link [var{_fr} var{_de} var{_it} var{_pt} var{_es} var{schon_de} var{sim_pt} var{sí_es} var{_fr} var{_de} var{_it} var{_pt} var{_es} var{faire_fr} var{tun_de} var{machen_de} var{κάμνω_el} var{κάνω_el} var{fare_it} var{fazer_pt} var{realizar_pt} var{face_ro} var{hacer_es} var{fazer_pt} var{aller_fr} var{reichen_de} var{servir_pt} var{valer_es} var{aller_fr} var{andare_it} var{servir_pt} var{valer_es} var{fazer_pt} var{do_en}] 'means var{To have (as an effect).}
{To fare, perform (well or poorly).}: put'sense [name: {To fare, perform (well or poorly).}]
[ {ir_pt} ]: put.many 'word [ [name:{ir}, lang:{pt}] ]
link [var{_fr} var{_de} var{_it} var{_pt} var{_es} var{schon_de} var{sim_pt} var{sí_es} var{_fr} var{_de} var{_it} var{_pt} var{_es} var{faire_fr} var{tun_de} var{machen_de} var{κάμνω_el} var{κάνω_el} var{fare_it} var{fazer_pt} var{realizar_pt} var{face_ro} var{hacer_es} var{fazer_pt} var{aller_fr} var{reichen_de} var{servir_pt} var{valer_es} var{aller_fr} var{andare_it} var{servir_pt} var{valer_es} var{fazer_pt} var{ir_pt} var{do_en}] 'means var{To fare, perform (well or poorly).}
{To have as one's job.}: put'sense [name: {To have as one's job.}]
[ {fazer_pt}, {hacer_es} ]: put.many 'word [ [name:{fazer}, lang:{pt}], [name:{hacer}, lang:{es}] ]
link [var{_fr} var{_de} var{_it} var{_pt} var{_es} var{schon_de} var{sim_pt} var{sí_es} var{_fr} var{_de} var{_it} var{_pt} var{_es} var{faire_fr} var{tun_de} var{machen_de} var{κάμνω_el} var{κάνω_el} var{fare_it} var{fazer_pt} var{realizar_pt} var{face_ro} var{hacer_es} var{fazer_pt} var{aller_fr} var{reichen_de} var{servir_pt} var{valer_es} var{aller_fr} var{andare_it} var{servir_pt} var{valer_es} var{fazer_pt} var{ir_pt} var{fazer_pt} var{hacer_es} var{do_en}] 'means var{To have as one's job.}
{To perform the tasks or actions associated with (something).}: put'sense [name: {To perform the tasks or actions associated with (something).}]
{To cook.}: put'sense [name: {To cook.}]
[ {fazer_pt}, {preparar_pt}, {hacer_es} ]: put.many 'word [ [name:{fazer}, lang:{pt}], [name:{preparar}, lang:{pt}], [name:{hacer}, lang:{es}] ]
link [var{_fr} var{_de} var{_it} var{_pt} var{_es} var{schon_de} var{sim_pt} var{sí_es} var{_fr} var{_de} var{_it} var{_pt} var{_es} var{faire_fr} var{tun_de} var{machen_de} var{κάμνω_el} var{κάνω_el} var{fare_it} var{fazer_pt} var{realizar_pt} var{face_ro} var{hacer_es} var{fazer_pt} var{aller_fr} var{reichen_de} var{servir_pt} var{valer_es} var{aller_fr} var{andare_it} var{servir_pt} var{valer_es} var{fazer_pt} var{ir_pt} var{fazer_pt} var{hacer_es} var{fazer_pt} var{preparar_pt} var{hacer_es} var{do_en}] 'means var{To cook.}
{To travel in, to tour, to make a circuit of.}: put'sense [name: {To travel in, to tour, to make a circuit of.}]
{To treat in a certain way.}: put'sense [name: {To treat in a certain way.}]
{To work for or on, by way of caring for, looking after, preparing, cleaning, keeping in order, etc.}: put'sense [name: {To work for or on, by way of caring for, looking after, preparing, cleaning, keeping in order, etc.}]
{To act or behave in a certain manner; to conduct oneself.}: put'sense [name: {To act or behave in a certain manner; to conduct oneself.}]
{To spend (time) in jail. (See also do time)}: put'sense [name: {To spend (time) in jail. (See also do time)}]
[ {passar_pt} ]: put.many 'word [ [name:{passar}, lang:{pt}] ]
link [var{_fr} var{_de} var{_it} var{_pt} var{_es} var{schon_de} var{sim_pt} var{sí_es} var{_fr} var{_de} var{_it} var{_pt} var{_es} var{faire_fr} var{tun_de} var{machen_de} var{κάμνω_el} var{κάνω_el} var{fare_it} var{fazer_pt} var{realizar_pt} var{face_ro} var{hacer_es} var{fazer_pt} var{aller_fr} var{reichen_de} var{servir_pt} var{valer_es} var{aller_fr} var{andare_it} var{servir_pt} var{valer_es} var{fazer_pt} var{ir_pt} var{fazer_pt} var{hacer_es} var{fazer_pt} var{preparar_pt} var{hacer_es} var{passar_pt} var{do_en}] 'means var{To spend (time) in jail. (See also do time)}
{To impersonate or depict.}: put'sense [name: {To impersonate or depict.}]
{To copy or emulate the actions or behaviour that is associated with the person or thing mentioned.}: put'sense [name: {To copy or emulate the actions or behaviour that is associated with the person or thing mentioned.}]
{To kill.}: put'sense [name: {To kill.}]
{To deal with for good and all; to finish up; to undo; to ruin; to do for.}: put'sense [name: {To deal with for good and all; to finish up; to undo; to ruin; to do for.}]
{To punish for a misdemeanor.}: put'sense [name: {To punish for a misdemeanor.}]
{To have sex with. (See also do it)}: put'sense [name: {To have sex with. (See also do it)}]
[ {se faire_fr}, {comer_pt}, {coger_es}, {culear_es}, {joder_es} ]: put.many 'word [ [name:{se faire}, lang:{fr}], [name:{comer}, lang:{pt}], [name:{coger}, lang:{es}], [name:{culear}, lang:{es}], [name:{joder}, lang:{es}] ]
link [var{_fr} var{_de} var{_it} var{_pt} var{_es} var{schon_de} var{sim_pt} var{sí_es} var{_fr} var{_de} var{_it} var{_pt} var{_es} var{faire_fr} var{tun_de} var{machen_de} var{κάμνω_el} var{κάνω_el} var{fare_it} var{fazer_pt} var{realizar_pt} var{face_ro} var{hacer_es} var{fazer_pt} var{aller_fr} var{reichen_de} var{servir_pt} var{valer_es} var{aller_fr} var{andare_it} var{servir_pt} var{valer_es} var{fazer_pt} var{ir_pt} var{fazer_pt} var{hacer_es} var{fazer_pt} var{preparar_pt} var{hacer_es} var{passar_pt} var{se faire_fr} var{comer_pt} var{coger_es} var{culear_es} var{joder_es} var{do_en}] 'means var{To have sex with. (See also do it)}
{To cheat or swindle.}: put'sense [name: {To cheat or swindle.}]
{To convert into a certain form; especially, to translate.}: put'sense [name: {To convert into a certain form; especially, to translate.}]
{To finish.}: put'sense [name: {To finish.}]
{To work as a domestic servant (with for).}: put'sense [name: {To work as a domestic servant (with for).}]
{Used to form the present progressive of verbs.}: put'sense [name: {Used to form the present progressive of verbs.}]
{To cash or to advance money for, as a bill or note.}: put'sense [name: {To cash or to advance money for, as a bill or note.}]
{To make or provide.}: put'sense [name: {To make or provide.}]
{To injure (one's own body part).}: put'sense [name: {To injure (one's own body part).}]
{To take drugs.}: put'sense [name: {To take drugs.}]
[ {nehmen_de}, {usar_pt} ]: put.many 'word [ [name:{nehmen}, lang:{de}], [name:{usar}, lang:{pt}] ]
link [var{_fr} var{_de} var{_it} var{_pt} var{_es} var{schon_de} var{sim_pt} var{sí_es} var{_fr} var{_de} var{_it} var{_pt} var{_es} var{faire_fr} var{tun_de} var{machen_de} var{κάμνω_el} var{κάνω_el} var{fare_it} var{fazer_pt} var{realizar_pt} var{face_ro} var{hacer_es} var{fazer_pt} var{aller_fr} var{reichen_de} var{servir_pt} var{valer_es} var{aller_fr} var{andare_it} var{servir_pt} var{valer_es} var{fazer_pt} var{ir_pt} var{fazer_pt} var{hacer_es} var{fazer_pt} var{preparar_pt} var{hacer_es} var{passar_pt} var{se faire_fr} var{comer_pt} var{coger_es} var{culear_es} var{joder_es} var{nehmen_de} var{usar_pt} var{do_en}] 'means var{To take drugs.}
{To exist with a purpose or for a reason.}: put'sense [name: {To exist with a purpose or for a reason.}]
[ {fazer_pt}, {hacer_es} ]: put.many 'word [ [name:{fazer}, lang:{pt}], [name:{hacer}, lang:{es}] ]
link [var{_fr} var{_de} var{_it} var{_pt} var{_es} var{schon_de} var{sim_pt} var{sí_es} var{_fr} var{_de} var{_it} var{_pt} var{_es} var{faire_fr} var{tun_de} var{machen_de} var{κάμνω_el} var{κάνω_el} var{fare_it} var{fazer_pt} var{realizar_pt} var{face_ro} var{hacer_es} var{fazer_pt} var{aller_fr} var{reichen_de} var{servir_pt} var{valer_es} var{aller_fr} var{andare_it} var{servir_pt} var{valer_es} var{fazer_pt} var{ir_pt} var{fazer_pt} var{hacer_es} var{fazer_pt} var{preparar_pt} var{hacer_es} var{passar_pt} var{se faire_fr} var{comer_pt} var{coger_es} var{culear_es} var{joder_es} var{nehmen_de} var{usar_pt} var{fazer_pt} var{hacer_es} var{do_en}] 'means var{To exist with a purpose or for a reason.}
{A party, celebration, social function.}: put'sense [name: {A party, celebration, social function.}]
{A hairdo.}: put'sense [name: {A hairdo.}]
[ {penteado_pt} ]: put.many 'word [ [name:{penteado}, lang:{pt}] ]
link [var{_fr} var{_de} var{_it} var{_pt} var{_es} var{schon_de} var{sim_pt} var{sí_es} var{_fr} var{_de} var{_it} var{_pt} var{_es} var{faire_fr} var{tun_de} var{machen_de} var{κάμνω_el} var{κάνω_el} var{fare_it} var{fazer_pt} var{realizar_pt} var{face_ro} var{hacer_es} var{fazer_pt} var{aller_fr} var{reichen_de} var{servir_pt} var{valer_es} var{aller_fr} var{andare_it} var{servir_pt} var{valer_es} var{fazer_pt} var{ir_pt} var{fazer_pt} var{hacer_es} var{fazer_pt} var{preparar_pt} var{hacer_es} var{passar_pt} var{se faire_fr} var{comer_pt} var{coger_es} var{culear_es} var{joder_es} var{nehmen_de} var{usar_pt} var{fazer_pt} var{hacer_es} var{penteado_pt} var{do_en}] 'means var{A hairdo.}
{Something that can or should be done (usually in the phrase dos and don'ts).}: put'sense [name: {Something that can or should be done (usually in the phrase dos and don'ts).}]
{Ado; bustle; stir; to-do; A period of confusion or argument.}: put'sense [name: {Ado; bustle; stir; to-do; A period of confusion or argument.}]
{A cheat; a swindler.}: put'sense [name: {A cheat; a swindler.}]
{An act of swindling; a fraud or deception.}: put'sense [name: {An act of swindling; a fraud or deception.}]
{A syllable used in solfège to represent the first and eighth tonic of a major scale.}: put'sense [name: {A syllable used in solfège to represent the first and eighth tonic of a major scale.}]
[ {do_fr}, {ντο_el}, {dó_pt}, {do_es} ]: put.many 'word [ [name:{do}, lang:{fr}], [name:{ντο}, lang:{el}], [name:{dó}, lang:{pt}], [name:{do}, lang:{es}] ]
link [var{_fr} var{_de} var{_it} var{_pt} var{_es} var{schon_de} var{sim_pt} var{sí_es} var{_fr} var{_de} var{_it} var{_pt} var{_es} var{faire_fr} var{tun_de} var{machen_de} var{κάμνω_el} var{κάνω_el} var{fare_it} var{fazer_pt} var{realizar_pt} var{face_ro} var{hacer_es} var{fazer_pt} var{aller_fr} var{reichen_de} var{servir_pt} var{valer_es} var{aller_fr} var{andare_it} var{servir_pt} var{valer_es} var{fazer_pt} var{ir_pt} var{fazer_pt} var{hacer_es} var{fazer_pt} var{preparar_pt} var{hacer_es} var{passar_pt} var{se faire_fr} var{comer_pt} var{coger_es} var{culear_es} var{joder_es} var{nehmen_de} var{usar_pt} var{fazer_pt} var{hacer_es} var{penteado_pt} var{do_fr} var{ντο_el} var{dó_pt} var{do_es} var{do_en}] 'means var{A syllable used in solfège to represent the first and eighth tonic of a major scale.}
{Abbreviation of ditto.}: put'sense [name: {Abbreviation of ditto.}]
{The cardinal number occurring after el and before do one in a duodecimal system. Written 10, decimal value 12.}: put'sense [name: {The cardinal number occurring after el and before do one in a duodecimal system. Written 10, decimal value 12.}]
{literature_en}: put'word [name: {literature}, lang: "en"]
{The body of all written works.}: put'sense [name: {The body of all written works.}]
[ {littérature_fr}, {Literatur_de}, {λογοτεχνία_el}, {βιβλιογραφία_el}, {letteratura_it}, {literatura_pt}, {literatură_ro}, {literatura_es} ]: put.many 'word [ [name:{littérature}, lang:{fr}], [name:{Literatur}, lang:{de}], [name:{λογοτεχνία}, lang:{el}], [name:{βιβλιογραφία}, lang:{el}], [name:{letteratura}, lang:{it}], [name:{literatura}, lang:{pt}], [name:{literatură}, lang:{ro}], [name:{literatura}, lang:{es}] ]
link [var{littérature_fr} var{Literatur_de} var{λογοτεχνία_el} var{βιβλιογραφία_el} var{letteratura_it} var{literatura_pt} var{literatură_ro} var{literatura_es} var{literature_en}] 'means var{The body of all written works.}
{The collected creative writing of a nation, people, group, or culture.}: put'sense [name: {The collected creative writing of a nation, people, group, or culture.}]
[ {literatura_pt}, {literatura_es} ]: put.many 'word [ [name:{literatura}, lang:{pt}], [name:{literatura}, lang:{es}] ]
link [var{littérature_fr} var{Literatur_de} var{λογοτεχνία_el} var{βιβλιογραφία_el} var{letteratura_it} var{literatura_pt} var{literatură_ro} var{literatura_es} var{literatura_pt} var{literatura_es} var{literature_en}] 'means var{The collected creative writing of a nation, people, group, or culture.}
{All the papers, treatises, etc. published in academic journals on a particular subject.}: put'sense [name: {All the papers, treatises, etc. published in academic journals on a particular subject.}]
[ {littérature_fr}, {letteratura_it}, {literatura_pt}, {literatura_es} ]: put.many 'word [ [name:{littérature}, lang:{fr}], [name:{letteratura}, lang:{it}], [name:{literatura}, lang:{pt}], [name:{literatura}, lang:{es}] ]
link [var{littérature_fr} var{Literatur_de} var{λογοτεχνία_el} var{βιβλιογραφία_el} var{letteratura_it} var{literatura_pt} var{literatură_ro} var{literatura_es} var{literatura_pt} var{literatura_es} var{littérature_fr} var{letteratura_it} var{literatura_pt} var{literatura_es} var{literature_en}] 'means var{All the papers, treatises, etc. published in academic journals on a particular subject.}
{Written fiction of a high standard.}: put'sense [name: {Written fiction of a high standard.}]
{sufficient_en}: put'word [name: {sufficient}, lang: "en"]
{An adequate quantity of; enough.}: put'sense [name: {An adequate quantity of; enough.}]
{A quantity (of something) that is as large as is needed.}: put'sense [name: {A quantity (of something) that is as large as is needed.}]
{Of a type or kind that suffices, that satisfies requirements or needs.}: put'sense [name: {Of a type or kind that suffices, that satisfies requirements or needs.}]
{Possessing adequate talents or accomplishments; of competent power or ability; qualified; fit.}: put'sense [name: {Possessing adequate talents or accomplishments; of competent power or ability; qualified; fit.}]
[ {appropriato_it}, {suficiente_pt}, {autosuffisant_fr}, {autosufficiente_it} ]: put.many 'word [ [name:{appropriato}, lang:{it}], [name:{suficiente}, lang:{pt}], [name:{autosuffisant}, lang:{fr}], [name:{autosufficiente}, lang:{it}] ]
link [var{appropriato_it} var{suficiente_pt} var{autosuffisant_fr} var{autosufficiente_it} var{sufficient_en}] 'means var{Possessing adequate talents or accomplishments; of competent power or ability; qualified; fit.}
{Capable of meeting obligations; responsible.}: put'sense [name: {Capable of meeting obligations; responsible.}]
[ {idoneo_it} ]: put.many 'word [ [name:{idoneo}, lang:{it}] ]
link [var{appropriato_it} var{suficiente_pt} var{autosuffisant_fr} var{autosufficiente_it} var{idoneo_it} var{sufficient_en}] 'means var{Capable of meeting obligations; responsible.}
{Having enough money to meet obligations and live comfortably.}: put'sense [name: {Having enough money to meet obligations and live comfortably.}]
{modernism_en}: put'word [name: {modernism}, lang: "en"]
{Modern or contemporary ideas, thought, practices, etc.}: put'sense [name: {Modern or contemporary ideas, thought, practices, etc.}]
{Anything that is characteristic of modernity.}: put'sense [name: {Anything that is characteristic of modernity.}]
{Any of several styles of art, architecture, literature, philosophy, etc., that flourished in the 20th century.}: put'sense [name: {Any of several styles of art, architecture, literature, philosophy, etc., that flourished in the 20th century.}]
[ {modernisme_fr}, {Modernismus_de}, {νεωτερισμός_el}, {modernismo_it}, {modernismo_pt}, {modernismo_es} ]: put.many 'word [ [name:{modernisme}, lang:{fr}], [name:{Modernismus}, lang:{de}], [name:{νεωτερισμός}, lang:{el}], [name:{modernismo}, lang:{it}], [name:{modernismo}, lang:{pt}], [name:{modernismo}, lang:{es}] ]
link [var{modernisme_fr} var{Modernismus_de} var{νεωτερισμός_el} var{modernismo_it} var{modernismo_pt} var{modernismo_es} var{modernism_en}] 'means var{Any of several styles of art, architecture, literature, philosophy, etc., that flourished in the 20th century.}
{A religious movement in the early 20th century that tried to reconcile Roman Catholic dogma with modern science and philosophy.}: put'sense [name: {A religious movement in the early 20th century that tried to reconcile Roman Catholic dogma with modern science and philosophy.}]
{midnight_en}: put'word [name: {midnight}, lang: "en"]
{The middle of the night: the sixth temporal hour, equidistant between sunset and sunrise.}: put'sense [name: {The middle of the night: the sixth temporal hour, equidistant between sunset and sunrise.}]
[ {medianoche_es}, {madrugada_es} ]: put.many 'word [ [name:{medianoche}, lang:{es}], [name:{madrugada}, lang:{es}] ]
link [var{medianoche_es} var{madrugada_es} var{midnight_en}] 'means var{The middle of the night: the sixth temporal hour, equidistant between sunset and sunrise.}
{Twelve o'clock at night exactly.}: put'sense [name: {Twelve o'clock at night exactly.}]
[ {minuit_fr}, {Mitternacht_de}, {μεσάνυχτα_el}, {mezzanotte_it}, {meia-noite_pt}, {miezul nopții_ro}, {miez de noapte_ro}, {mijloc de noapte_ro}, {medianoche_es} ]: put.many 'word [ [name:{minuit}, lang:{fr}], [name:{Mitternacht}, lang:{de}], [name:{μεσάνυχτα}, lang:{el}], [name:{mezzanotte}, lang:{it}], [name:{meia-noite}, lang:{pt}], [name:{miezul nopții}, lang:{ro}], [name:{miez de noapte}, lang:{ro}], [name:{mijloc de noapte}, lang:{ro}], [name:{medianoche}, lang:{es}] ]
link [var{medianoche_es} var{madrugada_es} var{minuit_fr} var{Mitternacht_de} var{μεσάνυχτα_el} var{mezzanotte_it} var{meia-noite_pt} var{miezul nopții_ro} var{miez de noapte_ro} var{mijloc de noapte_ro} var{medianoche_es} var{midnight_en}] 'means var{Twelve o'clock at night exactly.}
{boxcars}: put'sense [name: {boxcars}]
{Utterly dark or black.}: put'sense [name: {Utterly dark or black.}]
{able_en}: put'word [name: {able}, lang: "en"]
{Having the necessary powers or the needed resources to accomplish a task.}: put'sense [name: {Having the necessary powers or the needed resources to accomplish a task.}]
{Free from constraints preventing completion of task; permitted to; not prevented from.}: put'sense [name: {Free from constraints preventing completion of task; permitted to; not prevented from.}]
[ {capable_fr}, {imstande_de}, {fähig_de}, {δυνάμενος_el}, {μπορώ να_el}, {είμαι ικανός να_el}, {capace_it}, {possível_pt}, {permitido_pt}, {capaz_es} ]: put.many 'word [ [name:{capable}, lang:{fr}], [name:{imstande}, lang:{de}], [name:{fähig}, lang:{de}], [name:{δυνάμενος}, lang:{el}], [name:{μπορώ να}, lang:{el}], [name:{είμαι ικανός να}, lang:{el}], [name:{capace}, lang:{it}], [name:{possível}, lang:{pt}], [name:{permitido}, lang:{pt}], [name:{capaz}, lang:{es}] ]
link [var{capable_fr} var{imstande_de} var{fähig_de} var{δυνάμενος_el} var{μπορώ να_el} var{είμαι ικανός να_el} var{capace_it} var{possível_pt} var{permitido_pt} var{capaz_es} var{able_en}] 'means var{Free from constraints preventing completion of task; permitted to; not prevented from.}
{Gifted with skill, intelligence, knowledge, or competence.}: put'sense [name: {Gifted with skill, intelligence, knowledge, or competence.}]
[ {capable_fr}, {expérimenté_fr}, {fähig_de}, {tüchtig_de}, {ικανός_el}, {abile_it}, {capaz_pt}, {abil_ro}, {capabil_ro}, {diestro_es}, {hábil_es}, {capaz_es} ]: put.many 'word [ [name:{capable}, lang:{fr}], [name:{expérimenté}, lang:{fr}], [name:{fähig}, lang:{de}], [name:{tüchtig}, lang:{de}], [name:{ικανός}, lang:{el}], [name:{abile}, lang:{it}], [name:{capaz}, lang:{pt}], [name:{abil}, lang:{ro}], [name:{capabil}, lang:{ro}], [name:{diestro}, lang:{es}], [name:{hábil}, lang:{es}], [name:{capaz}, lang:{es}] ]
link [var{capable_fr} var{imstande_de} var{fähig_de} var{δυνάμενος_el} var{μπορώ να_el} var{είμαι ικανός να_el} var{capace_it} var{possível_pt} var{permitido_pt} var{capaz_es} var{capable_fr} var{expérimenté_fr} var{fähig_de} var{tüchtig_de} var{ικανός_el} var{abile_it} var{capaz_pt} var{abil_ro} var{capabil_ro} var{diestro_es} var{hábil_es} var{capaz_es} var{able_en}] 'means var{Gifted with skill, intelligence, knowledge, or competence.}
{Legally qualified or competent.}: put'sense [name: {Legally qualified or competent.}]
[ {habilité_fr}, {kompetent_de}, {αρτιμελής_el}, {έχων σώας τας φρένας_el}, {competente_pt}, {abilitat_ro}, {competent_ro}, {competente_es} ]: put.many 'word [ [name:{habilité}, lang:{fr}], [name:{kompetent}, lang:{de}], [name:{αρτιμελής}, lang:{el}], [name:{έχων σώας τας φρένας}, lang:{el}], [name:{competente}, lang:{pt}], [name:{abilitat}, lang:{ro}], [name:{competent}, lang:{ro}], [name:{competente}, lang:{es}] ]
link [var{capable_fr} var{imstande_de} var{fähig_de} var{δυνάμενος_el} var{μπορώ να_el} var{είμαι ικανός να_el} var{capace_it} var{possível_pt} var{permitido_pt} var{capaz_es} var{capable_fr} var{expérimenté_fr} var{fähig_de} var{tüchtig_de} var{ικανός_el} var{abile_it} var{capaz_pt} var{abil_ro} var{capabil_ro} var{diestro_es} var{hábil_es} var{capaz_es} var{habilité_fr} var{kompetent_de} var{αρτιμελής_el} var{έχων σώας τας φρένας_el} var{competente_pt} var{abilitat_ro} var{competent_ro} var{competente_es} var{able_en}] 'means var{Legally qualified or competent.}
{Capable of performing all the requisite duties; as an able seaman.}: put'sense [name: {Capable of performing all the requisite duties; as an able seaman.}]
{Having the physical strength; robust; healthy.}: put'sense [name: {Having the physical strength; robust; healthy.}]
{Easy to use.}: put'sense [name: {Easy to use.}]
{Suitable; competent.}: put'sense [name: {Suitable; competent.}]
{Liable to.}: put'sense [name: {Liable to.}]
{Rich; well-to-do.}: put'sense [name: {Rich; well-to-do.}]
{To make ready.}: put'sense [name: {To make ready.}]
{To make capable; to enable.}: put'sense [name: {To make capable; to enable.}]
{To dress.}: put'sense [name: {To dress.}]
{To give power to; to reinforce; to confirm.}: put'sense [name: {To give power to; to reinforce; to confirm.}]
{To vouch for; to guarantee.}: put'sense [name: {To vouch for; to guarantee.}]
{The letter "A" in Navy Phonetic Alphabet.}: put'sense [name: {The letter "A" in Navy Phonetic Alphabet.}]
{signal_en}: put'word [name: {signal}, lang: "en"]
{A sequence of states representing an encoded message in a communication channel.}: put'sense [name: {A sequence of states representing an encoded message in a communication channel.}]
{Any variation of a quantity or change in an entity over time that conveys information upon detection.}: put'sense [name: {Any variation of a quantity or change in an entity over time that conveys information upon detection.}]
{A sign made to give notice of some occurrence, command, or danger, or to indicate the start of a concerted action.}: put'sense [name: {A sign made to give notice of some occurrence, command, or danger, or to indicate the start of a concerted action.}]
[ {signal_fr}, {Signal_de}, {σήμα_el}, {segnale_it}, {sinal_pt}, {semnal_ro}, {señal_es} ]: put.many 'word [ [name:{signal}, lang:{fr}], [name:{Signal}, lang:{de}], [name:{σήμα}, lang:{el}], [name:{segnale}, lang:{it}], [name:{sinal}, lang:{pt}], [name:{semnal}, lang:{ro}], [name:{señal}, lang:{es}] ]
link [var{signal_fr} var{Signal_de} var{σήμα_el} var{segnale_it} var{sinal_pt} var{semnal_ro} var{señal_es} var{signal_en}] 'means var{A sign made to give notice of some occurrence, command, or danger, or to indicate the start of a concerted action.}
{An on-off light, semaphore, or other device used to give an indication to another person.}: put'sense [name: {An on-off light, semaphore, or other device used to give an indication to another person.}]
{An electromagnetic action, normally a voltage that is a function of time, that conveys the information of the radio or TV program or of communication with another party.}: put'sense [name: {An electromagnetic action, normally a voltage that is a function of time, that conveys the information of the radio or TV program or of communication with another party.}]
[ {segnale_it}, {campo_it}, {sinal_pt}, {semnal_ro}, {señal_es} ]: put.many 'word [ [name:{segnale}, lang:{it}], [name:{campo}, lang:{it}], [name:{sinal}, lang:{pt}], [name:{semnal}, lang:{ro}], [name:{señal}, lang:{es}] ]
link [var{signal_fr} var{Signal_de} var{σήμα_el} var{segnale_it} var{sinal_pt} var{semnal_ro} var{señal_es} var{segnale_it} var{campo_it} var{sinal_pt} var{semnal_ro} var{señal_es} var{signal_en}] 'means var{An electromagnetic action, normally a voltage that is a function of time, that conveys the information of the radio or TV program or of communication with another party.}
{An action, change or process done to convey information and thus reduce uncertainty.}: put'sense [name: {An action, change or process done to convey information and thus reduce uncertainty.}]
{A token; an indication; a foreshadowing; a sign.}: put'sense [name: {A token; an indication; a foreshadowing; a sign.}]
[ {sinal_pt} ]: put.many 'word [ [name:{sinal}, lang:{pt}] ]
link [var{signal_fr} var{Signal_de} var{σήμα_el} var{segnale_it} var{sinal_pt} var{semnal_ro} var{señal_es} var{segnale_it} var{campo_it} var{sinal_pt} var{semnal_ro} var{señal_es} var{sinal_pt} var{signal_en}] 'means var{A token; an indication; a foreshadowing; a sign.}
{Useful information, as opposed to noise.}: put'sense [name: {Useful information, as opposed to noise.}]
[ {sinal_pt} ]: put.many 'word [ [name:{sinal}, lang:{pt}] ]
link [var{signal_fr} var{Signal_de} var{σήμα_el} var{segnale_it} var{sinal_pt} var{semnal_ro} var{señal_es} var{segnale_it} var{campo_it} var{sinal_pt} var{semnal_ro} var{señal_es} var{sinal_pt} var{sinal_pt} var{signal_en}] 'means var{Useful information, as opposed to noise.}
{A simple interprocess communication used to notify a process or thread of an occurrence.}: put'sense [name: {A simple interprocess communication used to notify a process or thread of an occurrence.}]
[ {signal_fr} ]: put.many 'word [ [name:{signal}, lang:{fr}] ]
link [var{signal_fr} var{Signal_de} var{σήμα_el} var{segnale_it} var{sinal_pt} var{semnal_ro} var{señal_es} var{segnale_it} var{campo_it} var{sinal_pt} var{semnal_ro} var{señal_es} var{sinal_pt} var{sinal_pt} var{signal_fr} var{signal_en}] 'means var{A simple interprocess communication used to notify a process or thread of an occurrence.}
{A signalling interaction between cells}: put'sense [name: {A signalling interaction between cells}]
{To indicate; to convey or communicate by a signal.}: put'sense [name: {To indicate; to convey or communicate by a signal.}]
[ {signaler_fr}, {signalisieren_de}, {segnalare_it}, {indicare_it}, {señalar_es} ]: put.many 'word [ [name:{signaler}, lang:{fr}], [name:{signalisieren}, lang:{de}], [name:{segnalare}, lang:{it}], [name:{indicare}, lang:{it}], [name:{señalar}, lang:{es}] ]
link [var{signal_fr} var{Signal_de} var{σήμα_el} var{segnale_it} var{sinal_pt} var{semnal_ro} var{señal_es} var{segnale_it} var{campo_it} var{sinal_pt} var{semnal_ro} var{señal_es} var{sinal_pt} var{sinal_pt} var{signal_fr} var{signaler_fr} var{signalisieren_de} var{segnalare_it} var{indicare_it} var{señalar_es} var{signal_en}] 'means var{To indicate; to convey or communicate by a signal.}
{To communicate with (a person or system) by a signal.}: put'sense [name: {To communicate with (a person or system) by a signal.}]
{Standing above others in rank, importance, or achievement.}: put'sense [name: {Standing above others in rank, importance, or achievement.}]
{weapon_en}: put'word [name: {weapon}, lang: "en"]
{An instrument of attack or defense in combat or hunting, e.g. most guns, missiles, or swords; arm.}: put'sense [name: {An instrument of attack or defense in combat or hunting, e.g. most guns, missiles, or swords; arm.}]
[ {arme_fr}, {Waffe_de}, {όπλο_el}, {arma_it}, {arma_pt}, {armă_ro}, {arma_es} ]: put.many 'word [ [name:{arme}, lang:{fr}], [name:{Waffe}, lang:{de}], [name:{όπλο}, lang:{el}], [name:{arma}, lang:{it}], [name:{arma}, lang:{pt}], [name:{armă}, lang:{ro}], [name:{arma}, lang:{es}] ]
link [var{arme_fr} var{Waffe_de} var{όπλο_el} var{arma_it} var{arma_pt} var{armă_ro} var{arma_es} var{weapon_en}] 'means var{An instrument of attack or defense in combat or hunting, e.g. most guns, missiles, or swords; arm.}
{An instrument or other means of harming or exerting control over another.}: put'sense [name: {An instrument or other means of harming or exerting control over another.}]
[ {όπλο_el} ]: put.many 'word [ [name:{όπλο}, lang:{el}] ]
link [var{arme_fr} var{Waffe_de} var{όπλο_el} var{arma_it} var{arma_pt} var{armă_ro} var{arma_es} var{όπλο_el} var{weapon_en}] 'means var{An instrument or other means of harming or exerting control over another.}
{A tool of any kind.}: put'sense [name: {A tool of any kind.}]
{An idiot, an oaf, a fool, a tool; a contemptible or incompetent person.}: put'sense [name: {An idiot, an oaf, a fool, a tool; a contemptible or incompetent person.}]
{Any very skilled, competent, or capable person or thing worthy of awe.}: put'sense [name: {Any very skilled, competent, or capable person or thing worthy of awe.}]
{To equip with a weapon; to arm.}: put'sense [name: {To equip with a weapon; to arm.}]
{devastation_en}: put'word [name: {devastation}, lang: "en"]
{The act of devastating, or the state of being devastated; a laying waste.}: put'sense [name: {The act of devastating, or the state of being devastated; a laying waste.}]
[ {dévastation_fr}, {Verwüstung_de}, {Zerstörung_de}, {αφανισμός_el}, {συντριβή_el}, {καταστροφή_el}, {devastação_pt}, {devastare_ro}, {devastación_es}, {asolamiento_es}, {arrasamiento_es}, {quebranto_es} ]: put.many 'word [ [name:{dévastation}, lang:{fr}], [name:{Verwüstung}, lang:{de}], [name:{Zerstörung}, lang:{de}], [name:{αφανισμός}, lang:{el}], [name:{συντριβή}, lang:{el}], [name:{καταστροφή}, lang:{el}], [name:{devastação}, lang:{pt}], [name:{devastare}, lang:{ro}], [name:{devastación}, lang:{es}], [name:{asolamiento}, lang:{es}], [name:{arrasamiento}, lang:{es}], [name:{quebranto}, lang:{es}] ]
link [var{dévastation_fr} var{Verwüstung_de} var{Zerstörung_de} var{αφανισμός_el} var{συντριβή_el} var{καταστροφή_el} var{devastação_pt} var{devastare_ro} var{devastación_es} var{asolamiento_es} var{arrasamiento_es} var{quebranto_es} var{devastation_en}] 'means var{The act of devastating, or the state of being devastated; a laying waste.}
{Waste or misapplication of the assets of a deceased person by an executor or administrator; devastavit.}: put'sense [name: {Waste or misapplication of the assets of a deceased person by an executor or administrator; devastavit.}]
{solidary_en}: put'word [name: {solidary}, lang: "en"]
{Having community of interests and responsibilities.}: put'sense [name: {Having community of interests and responsibilities.}]
{itself_en}: put'word [name: {itself}, lang: "en"]
{it; A thing as the object of a verb or preposition that also appears as the subject}: put'sense [name: {it; A thing as the object of a verb or preposition that also appears as the subject}]
[ {se_fr}, {von selbst_de}, {von allein_de}, {selbst_de}, {sich selbst_de}, {sé_it}, {se_pt}, {a si mesmo_pt}, {se_es}, {solo_es}, {a si mismo_es}, {por si mismo_es} ]: put.many 'word [ [name:{se}, lang:{fr}], [name:{von selbst}, lang:{de}], [name:{von allein}, lang:{de}], [name:{selbst}, lang:{de}], [name:{sich selbst}, lang:{de}], [name:{sé}, lang:{it}], [name:{se}, lang:{pt}], [name:{a si mesmo}, lang:{pt}], [name:{se}, lang:{es}], [name:{solo}, lang:{es}], [name:{a si mismo}, lang:{es}], [name:{por si mismo}, lang:{es}] ]
link [var{se_fr} var{von selbst_de} var{von allein_de} var{selbst_de} var{sich selbst_de} var{sé_it} var{se_pt} var{a si mesmo_pt} var{se_es} var{solo_es} var{a si mismo_es} var{por si mismo_es} var{itself_en}] 'means var{it; A thing as the object of a verb or preposition that also appears as the subject}
{it; used to intensify the subject, especially to emphasize that it is the only participant in the predicate}: put'sense [name: {it; used to intensify the subject, especially to emphasize that it is the only participant in the predicate}]
[ {soi-même_fr}, {se stesso_it}, {sé stesso_it}, {ele/ela mesmo_pt}, {próprio_pt}, {própria_pt}, {sí mismo_es}, {mismo_es} ]: put.many 'word [ [name:{soi-même}, lang:{fr}], [name:{se stesso}, lang:{it}], [name:{sé stesso}, lang:{it}], [name:{ele/ela mesmo}, lang:{pt}], [name:{próprio}, lang:{pt}], [name:{própria}, lang:{pt}], [name:{sí mismo}, lang:{es}], [name:{mismo}, lang:{es}] ]
link [var{se_fr} var{von selbst_de} var{von allein_de} var{selbst_de} var{sich selbst_de} var{sé_it} var{se_pt} var{a si mesmo_pt} var{se_es} var{solo_es} var{a si mismo_es} var{por si mismo_es} var{soi-même_fr} var{se stesso_it} var{sé stesso_it} var{ele/ela mesmo_pt} var{próprio_pt} var{própria_pt} var{sí mismo_es} var{mismo_es} var{itself_en}] 'means var{it; used to intensify the subject, especially to emphasize that it is the only participant in the predicate}
{it; used to refer back to an earlier subject}: put'sense [name: {it; used to refer back to an earlier subject}]
{audience_en}: put'word [name: {audience}, lang: "en"]
{A group of people within hearing; specifically, a large gathering of people listening to or watching a performance, speech, etc.}: put'sense [name: {A group of people within hearing; specifically, a large gathering of people listening to or watching a performance, speech, etc.}]
[ {assistance_fr}, {public_fr}, {auditoire_fr}, {Publikum_de}, {Zuschauer_de}, {Audienzen_de}, {ακροατήριο_el}, {κοινό_el}, {pubblico_it}, {uditorio_it}, {público_pt}, {plateia_pt}, {asistență_ro}, {audiencia_es}, {público_es} ]: put.many 'word [ [name:{assistance}, lang:{fr}], [name:{public}, lang:{fr}], [name:{auditoire}, lang:{fr}], [name:{Publikum}, lang:{de}], [name:{Zuschauer}, lang:{de}], [name:{Audienzen}, lang:{de}], [name:{ακροατήριο}, lang:{el}], [name:{κοινό}, lang:{el}], [name:{pubblico}, lang:{it}], [name:{uditorio}, lang:{it}], [name:{público}, lang:{pt}], [name:{plateia}, lang:{pt}], [name:{asistență}, lang:{ro}], [name:{audiencia}, lang:{es}], [name:{público}, lang:{es}] ]
link [var{assistance_fr} var{public_fr} var{auditoire_fr} var{Publikum_de} var{Zuschauer_de} var{Audienzen_de} var{ακροατήριο_el} var{κοινό_el} var{pubblico_it} var{uditorio_it} var{público_pt} var{plateia_pt} var{asistență_ro} var{audiencia_es} var{público_es} var{audience_en}] 'means var{A group of people within hearing; specifically, a large gathering of people listening to or watching a performance, speech, etc.}
{Hearing; the condition or state of hearing or listening.}: put'sense [name: {Hearing; the condition or state of hearing or listening.}]
{A widespread or nationwide viewing or listening public, as of a TV or radio network or program.}: put'sense [name: {A widespread or nationwide viewing or listening public, as of a TV or radio network or program.}]
{A formal meeting with a state or religious dignitary.}: put'sense [name: {A formal meeting with a state or religious dignitary.}]
[ {audience_fr}, {Audienz_de}, {ακρόαση_el}, {udienza_it}, {audiência_pt}, {audiență_ro}, {audiencia_es} ]: put.many 'word [ [name:{audience}, lang:{fr}], [name:{Audienz}, lang:{de}], [name:{ακρόαση}, lang:{el}], [name:{udienza}, lang:{it}], [name:{audiência}, lang:{pt}], [name:{audiență}, lang:{ro}], [name:{audiencia}, lang:{es}] ]
link [var{assistance_fr} var{public_fr} var{auditoire_fr} var{Publikum_de} var{Zuschauer_de} var{Audienzen_de} var{ακροατήριο_el} var{κοινό_el} var{pubblico_it} var{uditorio_it} var{público_pt} var{plateia_pt} var{asistență_ro} var{audiencia_es} var{público_es} var{audience_fr} var{Audienz_de} var{ακρόαση_el} var{udienza_it} var{audiência_pt} var{audiență_ro} var{audiencia_es} var{audience_en}] 'means var{A formal meeting with a state or religious dignitary.}
{The readership of a book or other written publication.}: put'sense [name: {The readership of a book or other written publication.}]
[ {lectorat_fr}, {Publikum_de}, {κοινό_el}, {pubblico_it}, {público_pt}, {público-alvo_pt}, {leitorado_pt}, {público_es} ]: put.many 'word [ [name:{lectorat}, lang:{fr}], [name:{Publikum}, lang:{de}], [name:{κοινό}, lang:{el}], [name:{pubblico}, lang:{it}], [name:{público}, lang:{pt}], [name:{público-alvo}, lang:{pt}], [name:{leitorado}, lang:{pt}], [name:{público}, lang:{es}] ]
link [var{assistance_fr} var{public_fr} var{auditoire_fr} var{Publikum_de} var{Zuschauer_de} var{Audienzen_de} var{ακροατήριο_el} var{κοινό_el} var{pubblico_it} var{uditorio_it} var{público_pt} var{plateia_pt} var{asistență_ro} var{audiencia_es} var{público_es} var{audience_fr} var{Audienz_de} var{ακρόαση_el} var{udienza_it} var{audiência_pt} var{audiență_ro} var{audiencia_es} var{lectorat_fr} var{Publikum_de} var{κοινό_el} var{pubblico_it} var{público_pt} var{público-alvo_pt} var{leitorado_pt} var{público_es} var{audience_en}] 'means var{The readership of a book or other written publication.}
{A following.}: put'sense [name: {A following.}]
[ {κοινό_el}, {público_pt}, {audiencia_es} ]: put.many 'word [ [name:{κοινό}, lang:{el}], [name:{público}, lang:{pt}], [name:{audiencia}, lang:{es}] ]
link [var{assistance_fr} var{public_fr} var{auditoire_fr} var{Publikum_de} var{Zuschauer_de} var{Audienzen_de} var{ακροατήριο_el} var{κοινό_el} var{pubblico_it} var{uditorio_it} var{público_pt} var{plateia_pt} var{asistență_ro} var{audiencia_es} var{público_es} var{audience_fr} var{Audienz_de} var{ακρόαση_el} var{udienza_it} var{audiência_pt} var{audiență_ro} var{audiencia_es} var{lectorat_fr} var{Publikum_de} var{κοινό_el} var{pubblico_it} var{público_pt} var{público-alvo_pt} var{leitorado_pt} var{público_es} var{κοινό_el} var{público_pt} var{audiencia_es} var{audience_en}] 'means var{A following.}
{An audiencia (judicial court of the Spanish empire), or the territory administered by it.}: put'sense [name: {An audiencia (judicial court of the Spanish empire), or the territory administered by it.}]
{diary_en}: put'word [name: {diary}, lang: "en"]
{A daily log of experiences, especially those of the writer.}: put'sense [name: {A daily log of experiences, especially those of the writer.}]
[ {journal intime_fr}, {Tagebuch_de}, {ημερολόγιο_el}, {diario_it}, {diário_pt}, {jurnal intim_ro}, {diario_es} ]: put.many 'word [ [name:{journal intime}, lang:{fr}], [name:{Tagebuch}, lang:{de}], [name:{ημερολόγιο}, lang:{el}], [name:{diario}, lang:{it}], [name:{diário}, lang:{pt}], [name:{jurnal intim}, lang:{ro}], [name:{diario}, lang:{es}] ]
link [var{journal intime_fr} var{Tagebuch_de} var{ημερολόγιο_el} var{diario_it} var{diário_pt} var{jurnal intim_ro} var{diario_es} var{diary_en}] 'means var{A daily log of experiences, especially those of the writer.}
{A personal organizer or appointment diary.}: put'sense [name: {A personal organizer or appointment diary.}]
{Lasting for one day.}: put'sense [name: {Lasting for one day.}]
{To keep a diary or journal.}: put'sense [name: {To keep a diary or journal.}]
]
preview fetch 'word ø
]
]
================================================
FILE: examples/sample2.art
================================================
do.import {grafito.art}
do [ graph.create "sample2" [
honorEnN: put'Pos [p:"noun"]
honorEsN: put'Pos [p:"noun"]
dishonorEnN: put'Pos [p:"noun"]
tokenS: put'Sense [s:"token of praise or respect"]
link'has (put'Lemma [w:"honor" l:"en"]) honorEnN
link'has (put'Lemma [w:"honor" l:"es"]) honorEsN
link'has (put'Lemma [w:"dishonor" l:"en"]) dishonorEnN
link'means honorEnN tokenS
link'means honorEsN tokenS
link'antonym dishonorEnN honorEnN
preview fetch 'Pos ø
]]
================================================
FILE: examples/sample3.art
================================================
do.import {grafito.art}
do [
graph.create "sample3" [
nick: put'person [name: "Nick", sex: "m", birth: 1957]
eleftheria: put'person [name: "Eleftheria", sex: "f", birth: 1960]
angela: put'person [name: "Angela", sex: "f", birth: 1999]
john: put'person [name: "John", sex: "m", birth: 1986]
niovi: put'person [name: "Niovi", sex: "f", birth: 1928]
johnA: put'person [name: "John", sex: "m", birth: 1933]
tatie: put'person [name: "Tatie", sex: "m", birth: 1958]
spaghetti: put'food [name: "Spaghetti"]
pizza: put'food [name: "Pizza"]
steak: put'food [name: "Steak"]
link'marriedTo nick eleftheria
link'marriedTo johnA niovi
link'childOf @[angela john] @[nick eleftheria]
link'childOf @[nick tatie] @[johnA niovi]
link'likes @[john angela niovi] @[spaghetti]
link'likes @[eleftheria johnA nick] @[pizza]
link'likes @[john tatie nick] @[steak]
preview fetch 'person ø
]
]
================================================
FILE: examples/sample4.art
================================================
;---------------------------------------------
; Import Grafito
; and ... let's rock'n'roll! :)
;---------------------------------------------
do.import {grafito.art}
do [
;---------------------------------------------
; Set up a new graph environment
; with a local database named "sample4"
;---------------------------------------------
graph.create "sample4" [
;---------------------------------------------
; Populate the database
;---------------------------------------------
uk: put'country [name: "United Kingdom"]
au: put'country [name: "Australia"]
us: put'country [name: "United States"]
ca: put'country [name: "Canada"]
nolan: put'person [name: "Christopher Nolan" birthday: 1970 sex: "m"]
pearce: put'person [name: "Guy Pearce" birthday: 1967 sex: "m"]
hanson: put'person [name: "Curtis Hanson" birthday: 1945 sex: "m"]
spacey: put'person [name: "Kevin Spacey" birthday: 1959 sex: "m"]
dicaprio: put'person [name: "Leonardo DiCaprio" birthday: 1974 sex: "m"]
moss: put'person [name: "Carrie-Ann Moss" birthday: 1967 sex: "f"]
wach1: put'person [name: "Lana Wachowski" birthday: 1965 sex: "f"]
wach2: put'person [name: "Lilly Wachowski" birthday: 1967 sex: "f"]
memento: put'movie [title: "Memento" year: 2000]
inception: put'movie [title: "Inception" year: 2010]
laconfidential: put'movie [title: "L.A. Confidential" year: 1997]
matrix: put'movie [title: "The Matrix" year: 1999]
;---------------------------------------------
; Define the relationships
; between our nodes
;---------------------------------------------
link'isFrom nolan uk
link'isFrom pearce au
link'isFrom @[hanson spacey dicaprio wach1 wach2] us
link'isFrom moss ca
link'directed nolan @[memento inception]
link'directed hanson laconfidential
link'directed @[wach1 wach2] matrix
link'actedIn pearce @[memento laconfidential]
link'actedIn spacey laconfidential
link'actedIn dicaprio inception
link'actedIn moss @[memento matrix]
;---------------------------------------------
; Fetch every "person" &
; open the Desktop app for visualization
;---------------------------------------------
preview fetch 'person ø
]
]
================================================
FILE: examples/sample4b.art
================================================
;---------------------------------------------
; Import Grafito
; and ... let's rock'n'roll! :)
;---------------------------------------------
do.import {grafito.art}
do [
;---------------------------------------------
; Set up a new graph environment
; with a local database named "sample4"
;---------------------------------------------
graph.create "sample4b" [
;---------------------
; HELPERS
;---------------------
country: function [block] -> put 'country block
person: function [block] -> put 'person block
movie: function [block] -> put 'movie block
country?: function [block] -> fetch 'country block
person?: function [block] -> fetch 'person block
movie?: function [block] -> fetch 'movie block
;---------------------------------------------
; Populate the database
;---------------------------------------------
uk: country [name: "United Kingdom"]
au: country [name: "Australia"]
us: country [name: "United States"]
ca: country [name: "Canada"]
nolan: person [name: "Christopher Nolan" birthday: 1970 sex: "m"]
pearce: person [name: "Guy Pearce" birthday: 1967 sex: "m"]
hanson: person [name: "Curtis Hanson" birthday: 1945 sex: "m"]
spacey: person [name: "Kevin Spacey" birthday: 1959 sex: "m"]
dicaprio: person [name: "Leonardo DiCaprio" birthday: 1974 sex: "m"]
moss: person [name: "Carrie-Ann Moss" birthday: 1967 sex: "f"]
wach1: person [name: "Lana Wachowski" birthday: 1965 sex: "f"]
wach2: person [name: "Lilly Wachowski" birthday: 1967 sex: "f"]
memento: movie [title: "Memento" year: 2000]
inception: movie [title: "Inception" year: 2010]
laconfidential: movie [title: "L.A. Confidential" year: 1997]
matrix: movie [title: "The Matrix" year: 1999]
;---------------------------------------------
; Define the relationships
; between our nodes
;---------------------------------------------
link'isFrom nolan uk
link'isFrom pearce au
link'isFrom @[hanson spacey dicaprio wach1 wach2] us
link'isFrom moss ca
link'directed nolan @[memento inception]
link'directed hanson laconfidential
link'directed @[wach1 wach2] matrix
link'actedIn pearce @[memento laconfidential]
link'actedIn spacey laconfidential
link'actedIn dicaprio inception
link'actedIn moss @[memento matrix]
;---------------------------------------------
; Fetch every "person" &
; open the Desktop app for visualization
;---------------------------------------------
; person? [isFrom: first country? -> name: "United States" name: -> contains: "d"
; ] ; returns DiCaprio
; person? [
; isFrom: country? "United States"
; name: -> contains: "d"
; ] ; should return DiCaprio
; pythonic (potentially)
; person?
; isFrom: country?
; name:
; contains: "United"
; person? [
; isFrom: country? [
; name: [
; contains: "United"
; ]
; ]
; name: [
; contains: "w"
; ]
; ]
preview fetch 'person ø
]
]
================================================
FILE: examples/sample4c.art
================================================
;---------------------------------------------
; Import Grafito
; and ... let's rock'n'roll! :)
;---------------------------------------------
do.import {grafito.art}
do [
;---------------------------------------------
; Set up a new graph environment
; with a local database named "sample4"
;---------------------------------------------
graph .create
.helpers: [person movie country]
"sample4c"
[
;---------------------------------------------
; Populate the database
;---------------------------------------------
uk: country.new [name: "United Kingdom"]
au: country.new [name: "Australia"]
us: country.new [name: "United States"]
ca: country.new [name: "Canada"]
nolan: person.new [name: "Christopher Nolan" birthday: 1970 sex: "m"]
pearce: person.new [name: "Guy Pearce" birthday: 1967 sex: "m"]
hanson: person.new [name: "Curtis Hanson" birthday: 1945 sex: "m"]
spacey: person.new [name: "Kevin Spacey" birthday: 1959 sex: "m"]
dicaprio: person.new [name: "Leonardo DiCaprio" birthday: 1974 sex: "m"]
moss: person.new [name: "Carrie-Ann Moss" birthday: 1967 sex: "f"]
kidman: person.new [name: "Nicole Kidman" birthday: 1967 sex: "f"]
cruise: person.new [name: "Tom Cruise" birthday: 1962 sex: "m"]
kubrick: person.new [name: "Stanley Kubrick" birthday: 1928 sex: "m"]
wach1: person.new [name: "Lana Wachowski" birthday: 1965 sex: "f"]
wach2: person.new [name: "Lilly Wachowski" birthday: 1967 sex: "f"]
memento: movie.new [title: "Memento" year: 2000]
inception: movie.new [title: "Inception" year: 2010]
laconfidential: movie.new [title: "L.A. Confidential" year: 1997]
matrix: movie.new [title: "The Matrix" year: 1999]
eyes: movie.new [title: "Eyes Wide Shut" year: 1999]
;---------------------------------------------
; Define the relationships
; between our nodes
;---------------------------------------------
link'isFrom nolan uk
link'isFrom @[pearce kidman] au
link'isFrom @[hanson spacey dicaprio wach1 wach2 cruise kubrick] us
link'isFrom moss ca
link'directed nolan @[memento inception]
link'directed hanson laconfidential
link'directed @[wach1 wach2] matrix
link'directed kubrick eyes
link'actedIn pearce @[memento laconfidential]
link'actedIn spacey laconfidential
link'actedIn dicaprio inception
link'actedIn moss @[memento matrix]
link'actedIn @[cruise kidman] eyes
link'origin memento us
link'origin laconfidential us
link'origin matrix @[us au]
link'origin @[inception eyes] @[uk us]
link'sibling wach1 wach2
link'married cruise kidman
;---------------------------------------------
; Fetch every "person" &
; open the Desktop app for visualization
;---------------------------------------------
preview fetch 'person ø
]
]
================================================
FILE: examples/sample4d.art
================================================
;---------------------------------------------
; Import Grafito
; and ... let's rock'n'roll! :)
;---------------------------------------------
do.import {grafito.art}
do [
;---------------------------------------------
; Set up a new graph environment
; with a local database named "sample4"
;---------------------------------------------
graph.create "sample4b" [
;---------------------
; HELPERS
;---------------------
newCountry: function [block] -> put 'country block
newPerson: function [block] -> put 'person block
newMovie: function [block] -> put 'movie block
country: function [block] -> fetch 'country block
person: function [block] -> fetch 'person block
movie: function [block] -> fetch 'movie block
;---------------------------------------------
; Populate the database
;---------------------------------------------
uk: newCountry [name: "United Kingdom"]
au: newCountry [name: "Australia"]
us: newCountry [name: "United States"]
ca: newCountry [name: "Canada"]
nolan: newPerson [name: "Christopher Nolan" birthday: 1970 sex: "m"]
pearce: newPerson [name: "Guy Pearce" birthday: 1967 sex: "m"]
hanson: newPerson [name: "Curtis Hanson" birthday: 1945 sex: "m"]
spacey: newPerson [name: "Kevin Spacey" birthday: 1959 sex: "m"]
dicaprio: newPerson [name: "Leonardo DiCaprio" birthday: 1974 sex: "m"]
moss: newPerson [name: "Carrie-Ann Moss" birthday: 1967 sex: "f"]
wach1: newPerson [name: "Lana Wachowski" birthday: 1965 sex: "f"]
wach2: newPerson [name: "Lilly Wachowski" birthday: 1967 sex: "f"]
memento: newMovie [title: "Memento" year: 2000]
inception: newMovie [title: "Inception" year: 2010]
laconfidential: newMovie [title: "L.A. Confidential" year: 1997]
matrix: newMovie [title: "The Matrix" year: 1999]
;---------------------------------------------
; Define the relationships
; between our nodes
;---------------------------------------------
link'isFrom nolan uk
link'isFrom pearce au
link'isFrom @[hanson spacey dicaprio wach1 wach2] us
link'isFrom moss ca
link'directed nolan @[memento inception]
link'directed hanson laconfidential
link'directed @[wach1 wach2] matrix
link'actedIn pearce @[memento laconfidential]
link'actedIn spacey laconfidential
link'actedIn dicaprio inception
link'actedIn moss @[memento matrix]
;---------------------------------------------
; Fetch every "person" &
; open the Desktop app for visualization
;---------------------------------------------
; person? [isFrom: first country? -> name: "United States" name: -> contains: "d"
; ] ; returns DiCaprio
; person? [
; isFrom: country? "United States"
; name: -> contains: "d"
; ] ; should return DiCaprio
; pythonic (potentially)
; person?
; isFrom: country?
; name:
; contains: "United"
; person? [
; isFrom: country? [
; name: [
; contains: "United"
; ]
; ]
; name: [
; contains: "w"
; ]
; ]
preview person ø
]
]
================================================
FILE: examples/sample5.art
================================================
do.import {grafito.art}
do [
graph.create "sample5" [
lemma8b257cd027: put 'lemma [w: {book} l: {en}]
pos3722df1028: put'pos [p: {noun}]
link'is lemma8b257cd027 pos3722df1028
sensef86f08d2e2: put'sense [s:{collection of sheets of paper bound together containing printed or written material}]
link'means pos3722df1028 sensef86f08d2e2
lemma493be85c29: put'lemma [w: {كتاب} l: {apc}]
pose499631911: put'pos [p: {noun}]
link'is lemma493be85c29 pose499631911
link'means pose499631911 sensef86f08d2e2
lemma693a742816: put'lemma [w: {ᏗᎪᏪᎵ} l: {chr}]
pos22d786790a: put'pos [p: {noun}]
link'is lemma693a742816 pos22d786790a
link'means pos22d786790a sensef86f08d2e2
lemma26fd5156d7: put'lemma [w: {書} l: {gan}]
posf6b3172996: put'pos [p: {noun}]
link'is lemma26fd5156d7 posf6b3172996
link'means posf6b3172996 sensef86f08d2e2
lemma9a3a17ffe8: put'lemma [w: {书} l: {gan}]
pos9b9ff30210: put'pos [p: {noun}]
link'is lemma9a3a17ffe8 pos9b9ff30210
link'means pos9b9ff30210 sensef86f08d2e2
lemma3027ada842: put'lemma [w: {書} l: {cjy}]
pose7e0f1482c: put'pos [p: {noun}]
link'is lemma3027ada842 pose7e0f1482c
link'means pose7e0f1482c sensef86f08d2e2
lemmafb0ebfc12a: put'lemma [w: {书} l: {cjy}]
pos83a0d216aa: put'pos [p: {noun}]
link'is lemmafb0ebfc12a pos83a0d216aa
link'means pos83a0d216aa sensef86f08d2e2
lemmafdf3beed04: put'lemma [w: {書} l: {mnp}]
pos49fb33a5c6: put'pos [p: {noun}]
link'is lemmafdf3beed04 pos49fb33a5c6
link'means pos49fb33a5c6 sensef86f08d2e2
lemmae8ba2100e7: put'lemma [w: {书} l: {mnp}]
pos45b2f78257: put'pos [p: {noun}]
link'is lemmae8ba2100e7 pos45b2f78257
link'means pos45b2f78257 sensef86f08d2e2
lemmabfb684d055: put'lemma [w: {書} l: {hsn}]
pos21c619ca73: put'pos [p: {noun}]
link'is lemmabfb684d055 pos21c619ca73
link'means pos21c619ca73 sensef86f08d2e2
lemma49e788e226: put'lemma [w: {书} l: {hsn}]
pos53828a28f1: put'pos [p: {noun}]
link'is lemma49e788e226 pos53828a28f1
link'means pos53828a28f1 sensef86f08d2e2
lemma3de6f10595: put'lemma [w: {𞤣𞤫𞤬𞤼𞤫𞤪𞤫} l: {ff}]
pos61a1c07120: put'pos [p: {noun}]
link'is lemma3de6f10595 pos61a1c07120
link'means pos61a1c07120 sensef86f08d2e2
lemmadd03b675a5: put'lemma [w: {deftere} l: {ff}]
pos2ba9f770dd: put'pos [p: {noun}]
link'is lemmadd03b675a5 pos2ba9f770dd
link'means pos2ba9f770dd sensef86f08d2e2
lemmab6adde549d: put'lemma [w: {ブック} l: {ja}]
posefc5173c6e: put'pos [p: {noun}]
link'is lemmab6adde549d posefc5173c6e
link'means posefc5173c6e sensef86f08d2e2
lemma979bc5909e: put'lemma [w: {buku} l: {jv}]
pos53c5fefdd3: put'pos [p: {noun}]
link'is lemma979bc5909e pos53c5fefdd3
link'means pos53c5fefdd3 sensef86f08d2e2
lemma77d51b75ed: put'lemma [w: {layang} l: {jv}]
pose41277bf28: put'pos [p: {noun}]
link'is lemma77d51b75ed pose41277bf28
link'means pose41277bf28 sensef86f08d2e2
lemmada9979caf2: put'lemma [w: {serat} l: {jv}]
pos89453006b2: put'pos [p: {noun}]
link'is lemmada9979caf2 pos89453006b2
link'means pos89453006b2 sensef86f08d2e2
lemmaf9128c3a63: put'lemma [w: {hun} l: {tr}]
posc360a20e09: put'pos [p: {noun}]
link'is lemmaf9128c3a63 posc360a20e09
link'means posc360a20e09 sensef86f08d2e2
senseb2f79ce965: put'sense [s:{record of betting}]
link'means pos3722df1028 senseb2f79ce965
sensee629d8b849: put'sense [s:{convenient collection of small paper items, such as stamps}]
link'means pos3722df1028 sensee629d8b849
sense92e15899d7: put'sense [s:{major division of a published work, larger than a chapter}]
link'means pos3722df1028 sense92e15899d7
sensea5f1ab78b7: put'sense [s:{script of a musical}]
link'means pos3722df1028 sensea5f1ab78b7
sense310968d56f: put'sense [s:{usually in plural: records of the accounts of a business}]
link'means pos3722df1028 sense310968d56f
pos7f8fc0a70a: put'pos [p: {verb}]
link'is lemma8b257cd027 pos7f8fc0a70a
senseda38a026ab: put'sense [s:{to reserve}]
link'means pos7f8fc0a70a senseda38a026ab
lemma5ffab7eaf1: put'lemma [w: {حَجَزَ} l: {ar}]
pos8f96b36193: put'pos [p: {verb}]
link'is lemma5ffab7eaf1 pos8f96b36193
link'means pos8f96b36193 senseda38a026ab
lemmab052952b74: put'lemma [w: {запазвам} l: {bg}]
pos400e2c04fa: put'pos [p: {verb}]
link'is lemmab052952b74 pos400e2c04fa
link'means pos400e2c04fa senseda38a026ab
lemmac68abfa48d: put'lemma [w: {reservar} l: {ca}]
pos718825f926: put'pos [p: {verb}]
link'is lemmac68abfa48d pos718825f926
link'means pos718825f926 senseda38a026ab
lemma99b2986739: put'lemma [w: {預訂} l: {cmn}]
pos4cd050d838: put'pos [p: {verb}]
link'is lemma99b2986739 pos4cd050d838
link'means pos4cd050d838 senseda38a026ab
lemmafa2b938743: put'lemma [w: {预订} l: {cmn}]
posb4eb4eba86: put'pos [p: {verb}]
link'is lemmafa2b938743 posb4eb4eba86
link'means posb4eb4eba86 senseda38a026ab
lemma0f0d44abcf: put'lemma [w: {rezervovat} l: {cs}]
pos162f335187: put'pos [p: {verb}]
link'is lemma0f0d44abcf pos162f335187
link'means pos162f335187 senseda38a026ab
lemmaef137e0718: put'lemma [w: {zarezervovat} l: {cs}]
posf6d7b3a598: put'pos [p: {verb}]
link'is lemmaef137e0718 posf6d7b3a598
link'means posf6d7b3a598 senseda38a026ab
lemma2692b18099: put'lemma [w: {zabukovat} l: {cs}]
poscc0eb62b54: put'pos [p: {verb}]
link'is lemma2692b18099 poscc0eb62b54
link'means poscc0eb62b54 senseda38a026ab
lemma1654d11c38: put'lemma [w: {reservere} l: {da}]
pos9f550e3669: put'pos [p: {verb}]
link'is lemma1654d11c38 pos9f550e3669
link'means pos9f550e3669 senseda38a026ab
lemma3eb280bc1c: put'lemma [w: {bestille} l: {da}]
pos269495d662: put'pos [p: {verb}]
link'is lemma3eb280bc1c pos269495d662
link'means pos269495d662 senseda38a026ab
lemmaa5e7be2c82: put'lemma [w: {boeken} l: {nl}]
pos9fb854c050: put'pos [p: {verb}]
link'is lemmaa5e7be2c82 pos9fb854c050
link'means pos9fb854c050 senseda38a026ab
lemmac9f87cbf24: put'lemma [w: {reserveren} l: {nl}]
pos66b6ed688a: put'pos [p: {verb}]
link'is lemmac9f87cbf24 pos66b6ed688a
link'means pos66b6ed688a senseda38a026ab
lemmabbc5f17f49: put'lemma [w: {rezervi} l: {eo}]
pos37d07f5e83: put'pos [p: {verb}]
link'is lemmabbc5f17f49 pos37d07f5e83
link'means pos37d07f5e83 senseda38a026ab
lemmab7f16f3b0b: put'lemma [w: {varata} l: {fi}]
pos810ea59d98: put'pos [p: {verb}]
link'is lemmab7f16f3b0b pos810ea59d98
link'means pos810ea59d98 senseda38a026ab
lemmaea73a2348c: put'lemma [w: {tehdä varaus} l: {fi}]
pos8c953c4fbb: put'pos [p: {verb}]
link'is lemmaea73a2348c pos8c953c4fbb
link'means pos8c953c4fbb senseda38a026ab
lemmaa6e05310a1: put'lemma [w: {réserver} l: {fr}]
posdb48c2f6f9: put'pos [p: {verb}]
link'is lemmaa6e05310a1 posdb48c2f6f9
link'means posdb48c2f6f9 senseda38a026ab
lemma57ee34b617: put'lemma [w: {reservar} l: {gl}]
posedc5b0780b: put'pos [p: {verb}]
link'is lemma57ee34b617 posedc5b0780b
link'means posedc5b0780b senseda38a026ab
lemma20e6bcda51: put'lemma [w: {რეგისტრირება} l: {ka}]
posa462660823: put'pos [p: {verb}]
link'is lemma20e6bcda51 posa462660823
link'means posa462660823 senseda38a026ab
lemmab7b174e6b7: put'lemma [w: {რეგისტრაციაში გატარება} l: {ka}]
pos7f7fb6d403: put'pos [p: {verb}]
link'is lemmab7b174e6b7 pos7f7fb6d403
link'means pos7f7fb6d403 senseda38a026ab
lemmad0bd3f2e5f: put'lemma [w: {დაბრონვა} l: {ka}]
pos217871f31e: put'pos [p: {verb}]
link'is lemmad0bd3f2e5f pos217871f31e
link'means pos217871f31e senseda38a026ab
lemma419efd5922: put'lemma [w: {ბრონირება} l: {ka}]
pos8f34f3db49: put'pos [p: {verb}]
link'is lemma419efd5922 pos8f34f3db49
link'means pos8f34f3db49 senseda38a026ab
lemma9ce011469e: put'lemma [w: {buchen} l: {de}]
posbc3dcacdaa: put'pos [p: {verb}]
link'is lemma9ce011469e posbc3dcacdaa
link'means posbc3dcacdaa senseda38a026ab
lemma4adc255247: put'lemma [w: {reservieren} l: {de}]
posabf9ceb9e3: put'pos [p: {verb}]
link'is lemma4adc255247 posabf9ceb9e3
link'means posabf9ceb9e3 senseda38a026ab
lemma8142abc97f: put'lemma [w: {κρατώ} l: {el}]
pos29eb57cafc: put'pos [p: {verb}]
link'is lemma8142abc97f pos29eb57cafc
link'means pos29eb57cafc senseda38a026ab
lemma64c115b11d: put'lemma [w: {προκρατ} l: {el}]
posf6043dbd1d: put'pos [p: {verb}]
link'is lemma64c115b11d posf6043dbd1d
link'means posf6043dbd1d senseda38a026ab
lemma0c080e4747: put'lemma [w: {κλείνω} l: {el}]
pos9be526592e: put'pos [p: {verb}]
link'is lemma0c080e4747 pos9be526592e
link'means pos9be526592e senseda38a026ab
lemma1445c3359b: put'lemma [w: {रिज़र्व करना} l: {hi}]
pos2652d23622: put'pos [p: {verb}]
link'is lemma1445c3359b pos2652d23622
link'means pos2652d23622 senseda38a026ab
lemmad879fb0956: put'lemma [w: {lefoglal} l: {hu}]
posfa7a7ccc22: put'pos [p: {verb}]
link'is lemmad879fb0956 posfa7a7ccc22
link'means posfa7a7ccc22 senseda38a026ab
lemmad3a1fe2739: put'lemma [w: {foglal} l: {hu}]
posc4b80a955a: put'pos [p: {verb}]
link'is lemmad3a1fe2739 posc4b80a955a
link'means posc4b80a955a senseda38a026ab
lemmaf9d257fe1b: put'lemma [w: {megvált} l: {hu}]
pos8272261f05: put'pos [p: {verb}]
link'is lemmaf9d257fe1b pos8272261f05
link'means pos8272261f05 senseda38a026ab
lemma0628303c25: put'lemma [w: {vált} l: {hu}]
pos91a5d1faa1: put'pos [p: {verb}]
link'is lemma0628303c25 pos91a5d1faa1
link'means pos91a5d1faa1 senseda38a026ab
lemmad664047b50: put'lemma [w: {előjegyez} l: {hu}]
pos172fda6753: put'pos [p: {verb}]
link'is lemmad664047b50 pos172fda6753
link'means pos172fda6753 senseda38a026ab
lemma0fcd290db9: put'lemma [w: {pesan} l: {id}]
pos3fc7440682: put'pos [p: {verb}]
link'is lemma0fcd290db9 pos3fc7440682
link'means pos3fc7440682 senseda38a026ab
lemma285918e9d7: put'lemma [w: {reservar} l: {ia}]
pos71e7aa6831: put'pos [p: {verb}]
link'is lemma285918e9d7 pos71e7aa6831
link'means pos71e7aa6831 senseda38a026ab
lemmab388c1d5f4: put'lemma [w: {cuir in áirithe} l: {ga}]
posc087fab3ae: put'pos [p: {verb}]
link'is lemmab388c1d5f4 posc087fab3ae
link'means posc087fab3ae senseda38a026ab
lemma50000a8536: put'lemma [w: {prenotare} l: {it}]
pos95467c3689: put'pos [p: {verb}]
link'is lemma50000a8536 pos95467c3689
link'means pos95467c3689 senseda38a026ab
lemmae07803f170: put'lemma [w: {riservare} l: {it}]
pos6a7ad647ae: put'pos [p: {verb}]
link'is lemmae07803f170 pos6a7ad647ae
link'means pos6a7ad647ae senseda38a026ab
lemma4452d5f6db: put'lemma [w: {予約する} l: {ja}]
pos454ca32c7b: put'pos [p: {verb}]
link'is lemma4452d5f6db pos454ca32c7b
link'means pos454ca32c7b senseda38a026ab
lemma8fcd8726fe: put'lemma [w: {예약하다} l: {ko}]
pos4a5a86c7bd: put'pos [p: {verb}]
link'is lemma8fcd8726fe pos4a5a86c7bd
link'means pos4a5a86c7bd senseda38a026ab
lemma2433e61607: put'lemma [w: {豫約} l: {ko}]
pos6473e71a0d: put'pos [p: {verb}]
link'is lemma2433e61607 pos6473e71a0d
link'means pos6473e71a0d senseda38a026ab
lemma0b78bda757: put'lemma [w: {하다} l: {ko}]
pos1a5ff82ae5: put'pos [p: {verb}]
link'is lemma0b78bda757 pos1a5ff82ae5
link'means pos1a5ff82ae5 senseda38a026ab
lemma9c4463e264: put'lemma [w: {резерви́ра} l: {mk}]
pos53276c2faa: put'pos [p: {verb}]
link'is lemma9c4463e264 pos53276c2faa
link'means pos53276c2faa senseda38a026ab
lemma00530c554d: put'lemma [w: {закажува} l: {mk}]
pos40bedcde3d: put'pos [p: {verb}]
link'is lemma00530c554d pos40bedcde3d
link'means pos40bedcde3d senseda38a026ab
lemma34f6b2ffdd: put'lemma [w: {tempah} l: {ms}]
pos2d7cbe1793: put'pos [p: {verb}]
link'is lemma34f6b2ffdd pos2d7cbe1793
link'means pos2d7cbe1793 senseda38a026ab
lemmad6f29905b6: put'lemma [w: {tāpui} l: {mi}]
pos23a68a8d2b: put'pos [p: {verb}]
link'is lemmad6f29905b6 pos23a68a8d2b
link'means pos23a68a8d2b senseda38a026ab
lemmaf698af452b: put'lemma [w: {ukaɗimia} l: {zdj}]
pos6e1ac881a5: put'pos [p: {verb}]
link'is lemmaf698af452b pos6e1ac881a5
link'means pos6e1ac881a5 senseda38a026ab
lemmac034b1f0e8: put'lemma [w: {boutchi} l: {nrf}]
pos712ca843ca: put'pos [p: {verb}]
link'is lemmac034b1f0e8 pos712ca843ca
link'means pos712ca843ca senseda38a026ab
lemma77255589bd: put'lemma [w: {bestille} l: {no}]
posd2ec255c53: put'pos [p: {verb}]
link'is lemma77255589bd posd2ec255c53
link'means posd2ec255c53 senseda38a026ab
lemma0536ef5117: put'lemma [w: {reservere} l: {no}]
pos93c775435f: put'pos [p: {verb}]
link'is lemma0536ef5117 pos93c775435f
link'means pos93c775435f senseda38a026ab
lemmafc32ea3c6b: put'lemma [w: {رزرو کردن} l: {fa}]
pos75d89b17a4: put'pos [p: {verb}]
link'is lemmafc32ea3c6b pos75d89b17a4
link'means pos75d89b17a4 senseda38a026ab
lemma0d1a467c92: put'lemma [w: {rezerwować} l: {pl}]
pos6b76db03c3: put'pos [p: {verb}]
link'is lemma0d1a467c92 pos6b76db03c3
link'means pos6b76db03c3 senseda38a026ab
lemma30625f22fd: put'lemma [w: {zarezerwować} l: {pl}]
pos283289ef18: put'pos [p: {verb}]
link'is lemma30625f22fd pos283289ef18
link'means pos283289ef18 senseda38a026ab
lemma7bd6f153d5: put'lemma [w: {bukować} l: {pl}]
pos6e5c9329a8: put'pos [p: {verb}]
link'is lemma7bd6f153d5 pos6e5c9329a8
link'means pos6e5c9329a8 senseda38a026ab
lemma5e6b1a766b: put'lemma [w: {zabukować} l: {pl}]
pos002a1fcd8e: put'pos [p: {verb}]
link'is lemma5e6b1a766b pos002a1fcd8e
link'means pos002a1fcd8e senseda38a026ab
lemma26b0f4e842: put'lemma [w: {reservar} l: {pt}]
pos12c0f1ee7a: put'pos [p: {verb}]
link'is lemma26b0f4e842 pos12c0f1ee7a
link'means pos12c0f1ee7a senseda38a026ab
lemma879ebd4b4c: put'lemma [w: {rezerva} l: {ro}]
pos926bdd0d33: put'pos [p: {verb}]
link'is lemma879ebd4b4c pos926bdd0d33
link'means pos926bdd0d33 senseda38a026ab
lemmace2406de31: put'lemma [w: {брони́ровать} l: {ru}]
posb84f90110d: put'pos [p: {verb}]
link'is lemmace2406de31 posb84f90110d
link'means posb84f90110d senseda38a026ab
lemmae4ed260f84: put'lemma [w: {заброни́ровать} l: {ru}]
pose74deb4481: put'pos [p: {verb}]
link'is lemmae4ed260f84 pose74deb4481
link'means pose74deb4481 senseda38a026ab
lemma8f820f7a26: put'lemma [w: {резерви́ровать} l: {ru}]
pos0347e3dc8e: put'pos [p: {verb}]
link'is lemma8f820f7a26 pos0347e3dc8e
link'means pos0347e3dc8e senseda38a026ab
lemma708016700d: put'lemma [w: {зарезерви́ровать} l: {ru}]
pos1390c3be31: put'pos [p: {verb}]
link'is lemma708016700d pos1390c3be31
link'means pos1390c3be31 senseda38a026ab
lemma530ab298bb: put'lemma [w: {зака́зывать} l: {ru}]
pos7067c6efa1: put'pos [p: {verb}]
link'is lemma530ab298bb pos7067c6efa1
link'means pos7067c6efa1 senseda38a026ab
lemma2b81adebcc: put'lemma [w: {заказа́ть} l: {ru}]
poseafb3e54d8: put'pos [p: {verb}]
link'is lemma2b81adebcc poseafb3e54d8
link'means poseafb3e54d8 senseda38a026ab
lemma27f3081168: put'lemma [w: {predbilježiti} l: {sh}]
pos2e39921f77: put'pos [p: {verb}]
link'is lemma27f3081168 pos2e39921f77
link'means pos2e39921f77 senseda38a026ab
lemmac390608b64: put'lemma [w: {rezervirati} l: {sh}]
pos7ca2e7b7a1: put'pos [p: {verb}]
link'is lemmac390608b64 pos7ca2e7b7a1
link'means pos7ca2e7b7a1 senseda38a026ab
lemma0fa6291cae: put'lemma [w: {rezervovať} l: {sk}]
pos27093a6607: put'pos [p: {verb}]
link'is lemma0fa6291cae pos27093a6607
link'means pos27093a6607 senseda38a026ab
lemma9b51132bd5: put'lemma [w: {zarezervovať} l: {sk}]
pos3afcdc8775: put'pos [p: {verb}]
link'is lemma9b51132bd5 pos3afcdc8775
link'means pos3afcdc8775 senseda38a026ab
lemmadade0190a1: put'lemma [w: {reservar} l: {es}]
pos1a3816d253: put'pos [p: {verb}]
link'is lemmadade0190a1 pos1a3816d253
link'means pos1a3816d253 senseda38a026ab
lemmabe96b9eda9: put'lemma [w: {boka} l: {sv}]
pos8abf78a031: put'pos [p: {verb}]
link'is lemmabe96b9eda9 pos8abf78a031
link'means pos8abf78a031 senseda38a026ab
lemma66f4963c8f: put'lemma [w: {yer ayırma} l: {tr}]
pos3b7b578927: put'pos [p: {verb}]
link'is lemma66f4963c8f pos3b7b578927
link'means pos3b7b578927 senseda38a026ab
lemma1befa0db9f: put'lemma [w: {kitap} l: {tr}]
pos5945f4a88c: put'pos [p: {verb}]
link'is lemma1befa0db9f pos5945f4a88c
link'means pos5945f4a88c senseda38a026ab
lemmab0303cee06: put'lemma [w: {cadw} l: {cy}]
pos36d8a0e63e: put'pos [p: {verb}]
link'is lemmab0303cee06 pos36d8a0e63e
link'means pos36d8a0e63e senseda38a026ab
sense8095a9e6b4: put'sense [s:{to write down, register, record}]
link'means pos7f8fc0a70a sense8095a9e6b4
lemmad852354987: put'lemma [w: {записвам} l: {bg}]
pos8819b3eae4: put'pos [p: {verb}]
link'is lemmad852354987 pos8819b3eae4
link'means pos8819b3eae4 sense8095a9e6b4
lemmab005141cd0: put'lemma [w: {anotar} l: {ca}]
pos97495274a8: put'pos [p: {verb}]
link'is lemmab005141cd0 pos97495274a8
link'means pos97495274a8 sense8095a9e6b4
lemma0e15b367cc: put'lemma [w: {nedskrive} l: {da}]
pos97d056b11a: put'pos [p: {verb}]
link'is lemma0e15b367cc pos97d056b11a
link'means pos97d056b11a sense8095a9e6b4
lemmacdefb85839: put'lemma [w: {notere} l: {da}]
posfdd3b63753: put'pos [p: {verb}]
link'is lemmacdefb85839 posfdd3b63753
link'means posfdd3b63753 sense8095a9e6b4
lemmaa25f253805: put'lemma [w: {bogføre} l: {da}]
posade3600c74: put'pos [p: {verb}]
link'is lemmaa25f253805 posade3600c74
link'means posade3600c74 sense8095a9e6b4
lemma304f17307c: put'lemma [w: {te boek stellen} l: {nl}]
posd31eb16f3f: put'pos [p: {verb}]
link'is lemma304f17307c posd31eb16f3f
link'means posd31eb16f3f sense8095a9e6b4
lemma755a870552: put'lemma [w: {noteren} l: {nl}]
pos6fc05d6155: put'pos [p: {verb}]
link'is lemma755a870552 pos6fc05d6155
link'means pos6fc05d6155 sense8095a9e6b4
lemma8b3d7ecf85: put'lemma [w: {kirjoittaa ylös} l: {fi}]
pos3c91c6d9bc: put'pos [p: {verb}]
link'is lemma8b3d7ecf85 pos3c91c6d9bc
link'means pos3c91c6d9bc sense8095a9e6b4
lemma2c97454540: put'lemma [w: {kirjata} l: {fi}]
posc1827b1993: put'pos [p: {verb}]
link'is lemma2c97454540 posc1827b1993
link'means posc1827b1993 sense8095a9e6b4
lemma7e3ca6f4f8: put'lemma [w: {kirjoittaa muistiin} l: {fi}]
pos9e0e710234: put'pos [p: {verb}]
link'is lemma7e3ca6f4f8 pos9e0e710234
link'means pos9e0e710234 sense8095a9e6b4
lemma26cbdd3150: put'lemma [w: {rekisteröidä} l: {fi}]
posf3119d023c: put'pos [p: {verb}]
link'is lemma26cbdd3150 posf3119d023c
link'means posf3119d023c sense8095a9e6b4
lemmaf68d609965: put'lemma [w: {anotar} l: {gl}]
pos84cd315e51: put'pos [p: {verb}]
link'is lemmaf68d609965 pos84cd315e51
link'means pos84cd315e51 sense8095a9e6b4
lemma0de80bc46e: put'lemma [w: {notieren} l: {de}]
pos84a5f64c2e: put'pos [p: {verb}]
link'is lemma0de80bc46e pos84a5f64c2e
link'means pos84a5f64c2e sense8095a9e6b4
lemmaa10d262aaa: put'lemma [w: {schreiben} l: {de}]
pos5b1b03041e: put'pos [p: {verb}]
link'is lemmaa10d262aaa pos5b1b03041e
link'means pos5b1b03041e sense8095a9e6b4
lemma540a841c3d: put'lemma [w: {γράφω} l: {el}]
pos48be3a8c62: put'pos [p: {verb}]
link'is lemma540a841c3d pos48be3a8c62
link'means pos48be3a8c62 sense8095a9e6b4
lemma7fd4b6db6a: put'lemma [w: {καταχωρώ} l: {el}]
posdc3280615b: put'pos [p: {verb}]
link'is lemma7fd4b6db6a posdc3280615b
link'means posdc3280615b sense8095a9e6b4
lemmab7b990a4b0: put'lemma [w: {σημειώνω} l: {el}]
pos70c93fbb47: put'pos [p: {verb}]
link'is lemmab7b990a4b0 pos70c93fbb47
link'means pos70c93fbb47 sense8095a9e6b4
lemmaa6b4c7bca1: put'lemma [w: {könyvel} l: {hu}]
posb4d1705702: put'pos [p: {verb}]
link'is lemmaa6b4c7bca1 posb4d1705702
link'means posb4d1705702 sense8095a9e6b4
lemmab43710f26b: put'lemma [w: {elkönyvel} l: {hu}]
pos0ae342613c: put'pos [p: {verb}]
link'is lemmab43710f26b pos0ae342613c
link'means pos0ae342613c sense8095a9e6b4
lemma0511896480: put'lemma [w: {lekönyvel} l: {hu}]
pos3b3b44fb1a: put'pos [p: {verb}]
link'is lemma0511896480 pos3b3b44fb1a
link'means pos3b3b44fb1a sense8095a9e6b4
lemmabce991bde2: put'lemma [w: {annotare} l: {it}]
pos5ef4098e1e: put'pos [p: {verb}]
link'is lemmabce991bde2 pos5ef4098e1e
link'means pos5ef4098e1e sense8095a9e6b4
lemma2d43e6f98b: put'lemma [w: {trascrivere} l: {it}]
pos939a70c95b: put'pos [p: {verb}]
link'is lemma2d43e6f98b pos939a70c95b
link'means pos939a70c95b sense8095a9e6b4
lemmaa37bb862d6: put'lemma [w: {記入する} l: {ja}]
posbac3839f97: put'pos [p: {verb}]
link'is lemmaa37bb862d6 posbac3839f97
link'means posbac3839f97 sense8095a9e6b4
lemma8544784707: put'lemma [w: {внесува} l: {mk}]
pos70ca5d74c6: put'pos [p: {verb}]
link'is lemma8544784707 pos70ca5d74c6
link'means pos70ca5d74c6 sense8095a9e6b4
lemma875e7a5bda: put'lemma [w: {запишува} l: {mk}]
pose2a009c635: put'pos [p: {verb}]
link'is lemma875e7a5bda pose2a009c635
link'means pose2a009c635 sense8095a9e6b4
lemmaee5012657d: put'lemma [w: {заведува} l: {mk}]
posa54755bcaa: put'pos [p: {verb}]
link'is lemmaee5012657d posa54755bcaa
link'means posa54755bcaa sense8095a9e6b4
lemmad70262d4ea: put'lemma [w: {notere} l: {no}]
pos358f613c8a: put'pos [p: {verb}]
link'is lemmad70262d4ea pos358f613c8a
link'means pos358f613c8a sense8095a9e6b4
lemma02aa35731c: put'lemma [w: {nedskrive} l: {no}]
posa8ec1ffe68: put'pos [p: {verb}]
link'is lemma02aa35731c posa8ec1ffe68
link'means posa8ec1ffe68 sense8095a9e6b4
lemma01516d0d30: put'lemma [w: {spisać} l: {pl}]
pos12ec563702: put'pos [p: {verb}]
link'is lemma01516d0d30 pos12ec563702
link'means pos12ec563702 sense8095a9e6b4
lemma2611d0acb7: put'lemma [w: {anotar} l: {pt}]
pos869ad4d4c8: put'pos [p: {verb}]
link'is lemma2611d0acb7 pos869ad4d4c8
link'means pos869ad4d4c8 sense8095a9e6b4
lemma115333dd6b: put'lemma [w: {zaznačiť} l: {sk}]
pos78a01b223a: put'pos [p: {verb}]
link'is lemma115333dd6b pos78a01b223a
link'means pos78a01b223a sense8095a9e6b4
lemma096b64d995: put'lemma [w: {zaknihovať} l: {sk}]
posfe3151ea95: put'pos [p: {verb}]
link'is lemma096b64d995 posfe3151ea95
link'means posfe3151ea95 sense8095a9e6b4
lemma55e473797a: put'lemma [w: {anotar} l: {es}]
pos6734388ceb: put'pos [p: {verb}]
link'is lemma55e473797a pos6734388ceb
link'means pos6734388ceb sense8095a9e6b4
lemmaa06d6a035f: put'lemma [w: {bokföra} l: {sv}]
pos82f6ae7130: put'pos [p: {verb}]
link'is lemmaa06d6a035f pos82f6ae7130
link'means pos82f6ae7130 sense8095a9e6b4
lemmaef47e75a55: put'lemma [w: {skriva in} l: {sv}]
pos9e5da87289: put'pos [p: {verb}]
link'is lemmaef47e75a55 pos9e5da87289
link'means pos9e5da87289 sense8095a9e6b4
sensee218329346: put'sense [s:{to record the details of an offender}]
link'means pos7f8fc0a70a sensee218329346
lemmad643753534: put'lemma [w: {rekisteröidä} l: {fi}]
pos5b8591e2bc: put'pos [p: {verb}]
link'is lemmad643753534 pos5b8591e2bc
link'means pos5b8591e2bc sensee218329346
lemmab34798aa49: put'lemma [w: {felír} l: {hu}]
pos76ca843a7f: put'pos [p: {verb}]
link'is lemmab34798aa49 pos76ca843a7f
link'means pos76ca843a7f sensee218329346
lemma2384d799e8: put'lemma [w: {調書を取る} l: {ja}]
pos76f69059ac: put'pos [p: {verb}]
link'is lemma2384d799e8 pos76f69059ac
link'means pos76f69059ac sensee218329346
lemma74800b8ba1: put'lemma [w: {multar} l: {pt}]
posd2e6f18ffd: put'pos [p: {verb}]
link'is lemma74800b8ba1 posd2e6f18ffd
link'means posd2e6f18ffd sensee218329346
sense5524244560: put'sense [s:{sports: to issue with a caution}]
link'means pos7f8fc0a70a sense5524244560
lemmac7b383a3e1: put'lemma [w: {varoittaa} l: {fi}]
pos0b9995cd5d: put'pos [p: {verb}]
link'is lemmac7b383a3e1 pos0b9995cd5d
link'means pos0b9995cd5d sense5524244560
lemmaa86e7b94de: put'lemma [w: {antaa varoitus} l: {fi}]
pos236b000aa1: put'pos [p: {verb}]
link'is lemmaa86e7b94de pos236b000aa1
link'means pos236b000aa1 sense5524244560
lemmaeca039bc89: put'lemma [w: {sárga lapot ad} l: {hu}]
pos583dbbd7c1: put'pos [p: {verb}]
link'is lemmaeca039bc89 pos583dbbd7c1
link'means pos583dbbd7c1 sense5524244560
lemmae0276b43f4: put'lemma [w: {ammonire} l: {it}]
pos8cff370755: put'pos [p: {verb}]
link'is lemmae0276b43f4 pos8cff370755
link'means pos8cff370755 sense5524244560
sense90edbe61b4: put'sense [s:{slang: to travel very fast}]
link'means pos7f8fc0a70a sense90edbe61b4
lemma126c5a7bbb: put'lemma [w: {boeken} l: {nl}]
posbb935ff58b: put'pos [p: {verb}]
link'is lemma126c5a7bbb posbb935ff58b
link'means posbb935ff58b sense90edbe61b4
lemmab64af5f571: put'lemma [w: {vlammen} l: {nl}]
pos8ef07ad582: put'pos [p: {verb}]
link'is lemmab64af5f571 pos8ef07ad582
link'means pos8ef07ad582 sense90edbe61b4
lemmadc7c5c24bd: put'lemma [w: {luukuttaa} l: {fi}]
posc384af9d73: put'pos [p: {verb}]
link'is lemmadc7c5c24bd posc384af9d73
link'means posc384af9d73 sense90edbe61b4
lemmaf7717609a3: put'lemma [w: {rasen} l: {de}]
pos7b4bf047a5: put'pos [p: {verb}]
link'is lemmaf7717609a3 pos7b4bf047a5
link'means pos7b4bf047a5 sense90edbe61b4
lemma8df31a6b61: put'lemma [w: {száguld} l: {hu}]
posdf53c51b96: put'pos [p: {verb}]
link'is lemma8df31a6b61 posdf53c51b96
link'means posdf53c51b96 sense90edbe61b4
lemmac38cd89073: put'lemma [w: {スピードを出す} l: {ja}]
pos52af984c8e: put'pos [p: {verb}]
link'is lemmac38cd89073 pos52af984c8e
link'means pos52af984c8e sense90edbe61b4
lemma43a341aeb4: put'lemma [w: {飛ばす} l: {ja}]
pos4a27143545: put'pos [p: {verb}]
link'is lemma43a341aeb4 pos4a27143545
link'means pos4a27143545 sense90edbe61b4
sense4ece92bfd9: put'sense [s:{to record bets as bookmaker}]
link'means pos7f8fc0a70a sense4ece92bfd9
lemmafaa9c8acee: put'lemma [w: {pitää kirjaa} l: {fi}]
pos00f8e8942b: put'pos [p: {verb}]
link'is lemmafaa9c8acee pos00f8e8942b
link'means pos00f8e8942b sense4ece92bfd9
sense6ea9e80c3d: put'sense [s:{to receive the highest grade in a class}]
link'means pos7f8fc0a70a sense6ea9e80c3d
lemmabb32c98866: put'lemma [w: {legjobbként végez} l: {hu}]
posb87fd52a1b: put'pos [p: {verb}]
link'is lemmabb32c98866 posb87fd52a1b
link'means posb87fd52a1b sense6ea9e80c3d
sense7b57751785: put'sense [s:{slang: to leave}]
link'means pos7f8fc0a70a sense7b57751785
lemma37504a71c2: put'lemma [w: {nostaa kytkintä} l: {fi}]
pos79f54bd342: put'pos [p: {verb}]
link'is lemma37504a71c2 pos79f54bd342
link'means pos79f54bd342 sense7b57751785
lemma1e895e7987: put'lemma [w: {lelép} l: {hu}]
posdf6ca3c753: put'pos [p: {verb}]
link'is lemma1e895e7987 posdf6ca3c753
link'means posdf6ca3c753 sense7b57751785
pos7f8fc0a70a: put'pos [p: {verb}]
link'is lemma8b257cd027 pos7f8fc0a70a
lemmaceac518675: put 'lemma #[w: {book} l: {li}]
posf68c8817db: put'pos [p: {noun}]
link'is lemmaceac518675 posf68c8817db
lemmac1a1a27858: put 'lemma #[w: {book} l: {enm}]
pos0ff9e0a13a: put'pos [p: {noun}]
link'is lemmac1a1a27858 pos0ff9e0a13a
pos0ff9e0a13a: put'pos [p: {noun}]
link'is lemmac1a1a27858 pos0ff9e0a13a
lemma3af60c7721: put 'lemma #[w: {book} l: {nb}]
pos35c7f973f2: put'pos [p: {verb}]
link'is lemma3af60c7721 pos35c7f973f2
preview fetch'pos ø
]
]
================================================
FILE: examples/sample6.art
================================================
do.import {grafito.art}
do [
graph "sample6" [
put'person [name: "John" surname: "Doe" age: 34]
put'person [name: "Jane" surname: "doe" age: 24]
put'person [name: "Bill" surname: "Jones" age: 44]
; let's find all the people who are
; more than 30 years old
inspect fetch'person [
age: -> greater: 30
]
]
]
================================================
FILE: examples/sample7.art
================================================
do.import {grafito.art}
do [
graph.create "sample7" [
put'country [name: "United States"]
put'country [name: "Australia"]
john: put'person [name: "John" surname: "Doe" age: 34 country: "United States"]
jane: put'person [name: "Jane" surname: "doe" age: 24 country: "United States"]
put'person [name: "Bill" surname: "Jones" age: 44 country: "Australia"]
link'marriedTo john jane
; let's find all the people who are
; more than 30 years old
inspect fetch'person [
age: -> greater: 30
surname: "Doe"
]
]
]
================================================
FILE: examples/sample8.art
================================================
do.import {grafito.art}
do [
graph.create "sample8" [
;---------------------------------------------
; Populate the database
;---------------------------------------------
us: put'country [name: "United States"]
au: put'country [name: "Australia"]
john: put'person [name: "John" surname: "Doe" age: 34]
jane: put'person [name: "Jane" surname: "doe" age: 24]
bill: put'person [name: "Bill" surname: "Jones" age: 44]
mary: put'person [name: "Mary" age: 54]
link'marriedTo john jane
link'marriedTo bill mary
link'isFrom @[john mary] us
link'isFrom @[jane bill] au
;---------------------------------------------
; Let's perform some interesting queries!
;---------------------------------------------
; fetch all people
inspect fetch'person ø
; fetch all people that have a surname
inspect fetch'person [surname: true]
; fetch all people that have the name John
inspect fetch'person [name: "John"]
; fetch all people that are over 40 years old
inspect fetch'person [age: -> greater: 40]
; fetch all people that are over 40 years old
; and have the surname "Jones"
inspect fetch'person [
age: -> greater: 40
surname: "Jones"
]
; fetch all people that have the name John
; and are married to someone/anyone
inspect fetch'person [
name:"John"
marriedTo: ø
]
; fetch all people that have the name John
; and are married to someone with the name Joan
inspect fetch'person [
name:"John" marriedTo: what'person [name:"Joan"]
]
; fetch all people that have either the name "John"
; or the surname "Jones"
inspect fetch'person .any [
name:"John"
surname:"Jones"
]
]
]
================================================
FILE: examples/sample9.art
================================================
;---------------------------------------------
; Import Grafito
; and ... let's rock'n'roll! :)
;---------------------------------------------
do.import {grafito.art}
do [
;---------------------------------------------
; Set up a new graph environment
; with a local database named "sample4"
;---------------------------------------------
graph.create "sample9" [
ArithmeticObj: put'modl [name: "Arithmetic"]
arraysObj: put'modl [name: "arrays"]
arturoObj: put'modl [name: "arturo"]
benchmarkObj: put'modl [name: "benchmark"]
bignumObj: put'modl [name: "bignum"]
BinaryObj: put'modl [name: "Binary"]
bytecodeObj: put'modl [name: "bytecode"]
CollectionsObj: put'modl [name: "Collections"]
ComparisonObj: put'modl [name: "Comparison"]
ConvertersObj: put'modl [name: "Converters"]
CoreObj: put'modl [name: "Core"]
CryptoObj: put'modl [name: "Crypto"]
csvObj: put'modl [name: "csv"]
databaseObj: put'modl [name: "database"]
DatabasesObj: put'modl [name: "Databases"]
datasourceObj: put'modl [name: "datasource"]
DatesObj: put'modl [name: "Dates"]
debugObj: put'modl [name: "debug"]
envObj: put'modl [name: "env"]
errorsObj: put'modl [name: "errors"]
evalObj: put'modl [name: "eval"]
execObj: put'modl [name: "exec"]
ffiObj: put'modl [name: "ffi"]
FilesObj: put'modl [name: "Files"]
globalsObj: put'modl [name: "globals"]
helperObj: put'modl [name: "helper"]
htmlObj: put'modl [name: "html"]
IoObj: put'modl [name: "Io"]
IteratorsObj: put'modl [name: "Iterators"]
jsonobjectObj: put'modl [name: "jsonobject"]
libObj: put'modl [name: "lib"]
LogicObj: put'modl [name: "Logic"]
markdownObj: put'modl [name: "markdown"]
mathsObj: put'modl [name: "maths"]
md4cObj: put'modl [name: "md4c"]
minizObj: put'modl [name: "miniz"]
NetObj: put'modl [name: "Net"]
NumbersObj: put'modl [name: "Numbers"]
parseObj: put'modl [name: "parse"]
pathObj: put'modl [name: "path"]
PathsObj: put'modl [name: "Paths"]
ReflectionObj: put'modl [name: "Reflection"]
replObj: put'modl [name: "repl"]
SetsObj: put'modl [name: "Sets"]
stackObj: put'modl [name: "stack"]
stringsObj: put'modl [name: "strings"]
StringsObj: put'modl [name: "Strings"]
SystemObj: put'modl [name: "System"]
templatesObj: put'modl [name: "templates"]
tomlObj: put'modl [name: "toml"]
UiObj: put'modl [name: "Ui"]
unisortObj: put'modl [name: "unisort"]
urlObj: put'modl [name: "url"]
valueObj: put'modl [name: "value"]
versionObj: put'modl [name: "version"]
vmObj: put'modl [name: "vm"]
webviewObj: put'modl [name: "webview"]
link'rel valueObj bignumObj
link'rel errorsObj stringsObj
link'rel valueObj errorsObj
link'rel envObj valueObj
link'rel evalObj debugObj
link'rel globalsObj errorsObj
link'rel globalsObj valueObj
link'rel bytecodeObj globalsObj
link'rel bytecodeObj valueObj
link'rel evalObj bytecodeObj
link'rel evalObj globalsObj
link'rel evalObj valueObj
link'rel parseObj errorsObj
link'rel parseObj valueObj
link'rel stackObj valueObj
link'rel execObj bytecodeObj
link'rel execObj errorsObj
link'rel execObj evalObj
link'rel execObj globalsObj
link'rel execObj parseObj
link'rel execObj stackObj
link'rel execObj valueObj
link'rel vmObj envObj
link'rel vmObj errorsObj
link'rel vmObj evalObj
link'rel vmObj execObj
link'rel vmObj globalsObj
link'rel vmObj parseObj
link'rel vmObj stackObj
link'rel vmObj valueObj
link'rel vmObj versionObj
link'rel libObj globalsObj
link'rel libObj errorsObj
link'rel libObj stackObj
link'rel libObj valueObj
link'rel ArithmeticObj libObj
link'rel vmObj ArithmeticObj
link'rel BinaryObj libObj
link'rel vmObj BinaryObj
link'rel arraysObj valueObj
link'rel CollectionsObj arraysObj
link'rel unisortObj valueObj
link'rel CollectionsObj unisortObj
link'rel CollectionsObj libObj
link'rel vmObj CollectionsObj
link'rel ComparisonObj libObj
link'rel vmObj ComparisonObj
link'rel ConvertersObj bignumObj
link'rel urlObj valueObj
link'rel datasourceObj urlObj
link'rel ConvertersObj datasourceObj
link'rel ConvertersObj stringsObj
link'rel ConvertersObj libObj
link'rel ConvertersObj errorsObj
link'rel ConvertersObj execObj
link'rel ConvertersObj parseObj
link'rel vmObj ConvertersObj
link'rel CoreObj datasourceObj
link'rel ffiObj errorsObj
link'rel ffiObj valueObj
link'rel CoreObj ffiObj
link'rel CoreObj libObj
link'rel CoreObj envObj
link'rel CoreObj errorsObj
link'rel CoreObj evalObj
link'rel CoreObj execObj
link'rel CoreObj parseObj
link'rel vmObj CoreObj
link'rel CryptoObj libObj
link'rel vmObj CryptoObj
link'rel databaseObj valueObj
link'rel DatabasesObj databaseObj
link'rel DatabasesObj libObj
link'rel vmObj DatabasesObj
link'rel DatesObj libObj
link'rel vmObj DatesObj
link'rel htmlObj valueObj
; link'rel markdownObj md4cObj
; link'rel markdownObj valueObj
; link'rel tomlObj valueObj
; link'rel FilesObj minizObj
; link'rel FilesObj htmlObj
; link'rel FilesObj markdownObj
; link'rel FilesObj tomlObj
; link'rel csvObj valueObj
; link'rel FilesObj csvObj
; link'rel FilesObj datasourceObj
; link'rel jsonobjectObj valueObj
; link'rel FilesObj jsonobjectObj
; link'rel FilesObj libObj
; link'rel vmObj FilesObj
; link'rel replObj valueObj
; link'rel IoObj replObj
; link'rel IoObj libObj
; link'rel IoObj evalObj
; link'rel IoObj execObj
; link'rel vmObj IoObj
; link'rel IteratorsObj libObj
; link'rel IteratorsObj errorsObj
; link'rel IteratorsObj evalObj
; link'rel IteratorsObj execObj
; link'rel vmObj IteratorsObj
; link'rel LogicObj libObj
; link'rel LogicObj execObj
; link'rel vmObj LogicObj
; link'rel NetObj webviewObj
; link'rel NetObj libObj
; link'rel NetObj envObj
; link'rel NetObj execObj
; link'rel vmObj NetObj
; link'rel NumbersObj bignumObj
; link'rel mathsObj bignumObj
; link'rel mathsObj valueObj
; link'rel NumbersObj mathsObj
; link'rel NumbersObj libObj
; link'rel vmObj NumbersObj
; link'rel pathObj valueObj
; link'rel PathsObj pathObj
; link'rel PathsObj urlObj
; link'rel PathsObj libObj
; link'rel PathsObj envObj
; link'rel vmObj PathsObj
; link'rel ReflectionObj benchmarkObj
; link'rel helperObj globalsObj
; link'rel helperObj valueObj
; link'rel ReflectionObj helperObj
; link'rel ReflectionObj libObj
; link'rel ReflectionObj envObj
; link'rel ReflectionObj execObj
; link'rel vmObj ReflectionObj
; link'rel SetsObj libObj
; link'rel vmObj SetsObj
; link'rel StringsObj stringsObj
; link'rel templatesObj execObj
; link'rel templatesObj parseObj
; link'rel templatesObj stackObj
; link'rel templatesObj valueObj
; link'rel StringsObj templatesObj
; link'rel StringsObj libObj
; link'rel vmObj StringsObj
; link'rel SystemObj libObj
; link'rel SystemObj errorsObj
; link'rel SystemObj execObj
; link'rel vmObj SystemObj
; link'rel UiObj libObj
; link'rel UiObj jsonobjectObj
; link'rel UiObj urlObj
; link'rel UiObj webviewObj
; link'rel UiObj envObj
; link'rel UiObj execObj
;link'rel vmObj UiObj
;link'rel arturoObj versionObj
link'rel arturoObj valueObj
link'rel arturoObj vmObj
preview fetch 'modl ø
]
]
================================================
FILE: grafito.art
================================================
#!/usr/bin/env arturo
;========================================================
; Grafito
;
; SQLite-based Graph Database
; in Arturo
;--------------------------------------------------------
;; name: grafito
;; version: 0.2.12
;; author: drkameleon
;; website: « https://github.com/arturo-lang/grafito
;; category: database
;; embed: [
;; "ui" "sql"
;; ".art" ".sql" ".html" ".less" ".js"
;; ]
;========================================================
;--------------------------
; The main library
;--------------------------
Grafito: #[
; version
Version: 0.2.12
; configuration
Debug?: false
verbose?: true
caseSensitive?: true
; colors
Palette: ""
]
;
; Define custom objects
;--------------------------
define :edgeFilter [direction, content, properties]
;----------------------------------------------
graph: function [
dbpath :string :null
body :block
][
;; description: « initiate a new graph environment with given name and body
;; options: [
;; create: « recreate database from scratch, even if it exists
;; case: « queries should be case-sensitive
;; verbose: « show messages regarding database operations
;; palette: :string :literal « select color palette (current: default)
;; ]
;; returns: :any
;; example: {
;; graph "mydb" [
;; ; do sth with this graph database
;; ]
;; ..........
;; ; in memory database
;; graph ø [
;; ; do sth with this graph database
;; ]
;; }
;==========================================
; CONSTANTS
;==========================================
; Global SQL scripts
schemaSQL: split.by:";" read.file ./"sql/schema.sql"
createNodeSQL: read.file ./"sql/procs/createNode.sql"
updateNodeSQL: read.file ./"sql/procs/updateNode.sql"
updateNodePropertySQL: read.file ./"sql/procs/updateNodeProperty.sql"
updateNodePropertiesSQL: read.file ./"sql/procs/updateNodeProperties.sql"
deleteNodeSQL: read.file ./"sql/procs/deleteNode.sql"
deleteNodeEdgesSQL: read.file ./"sql/procs/deleteNodeEdges.sql"
getNodeSQL: read.file ./"sql/procs/getNode.sql"
getRelatedNodesSQL: read.file ./"sql/procs/getRelatedNodes.sql"
getMaxNodeIdSQL: read.file ./"sql/procs/getMaxNodeId.sql"
createEdgeSQL: read.file ./"sql/procs/createEdge.sql"
updateEdgeSQL: read.file ./"sql/procs/updateEdge.sql"
deleteEdgeSQL: read.file ./"sql/procs/deleteEdge.sql"
deleteEdgeByIdSQL: read.file ./"sql/procs/deleteEdgeById.sql"
fetchNodesSQL: read.file ./"sql/procs/fetchNodes.sql"
fetchNodesWithEdgesSQL: read.file ./"sql/procs/fetchNodes.withEdges.sql"
countNodesSQL: read.file ./"sql/procs/countNodes.sql"
countEdgesSQL: read.file ./"sql/procs/countEdges.sql"
; Global SQL filters
hasEdgeFilter: read.file ./"sql/filters/hasEdge.sql"
hasPropertyFilter: read.file ./"sql/filters/hasProperty.sql"
edgeWithTargetFilter: read.file ./"sql/filters/edgeWithTarget.sql"
edgeWithSourceFilter: read.file ./"sql/filters/edgeWithSource.sql"
edgeWithAnyFilter: read.file ./"sql/filters/edgeWithAny.sql"
edgeWithPropertiesFilter: read.file ./"sql/filters/edgeWithProperties.sql"
nodePropertyWithValueFilter: read.file ./"sql/filters/nodePropertyWithValue.sql"
edgePropertyWithValueFilter: read.file ./"sql/filters/edgePropertyWithValue.sql"
; Global SQL pragmas
caseInsensitiveLikePragma: read.file ./"sql/pragmas/caseInsensitiveLike.sql"
caseSensitiveLikePragma: read.file ./"sql/pragmas/caseSensitiveLike.sql"
; Global UI template
app: read.file ./"ui/index.html"
; Color palettes
; for graph nodes
colorPalettes: #.raw flatten.once map list ./"ui/palettes" 'pal [
@[extract.filename pal, to :block read.file pal]
]
;==========================================
; HELPERS
;==========================================
;
; Perform query
;--------------------------
performQuery: function [ctx, qu, params][
if and? [Grafito\Debug?][null? attr 'noDebug] [
context: to :string ctx
prepend: " | "
print color.bold #gray ">: " ++ context
queryString: qu
if block? qu [
queryString: join.with:"\n" qu
]
print color #gray prepend ++ join.with:"\n"++prepend split.lines queryString
inspect params
print ""
]
(not? null? params)? [
query db .with: params qu
][
query db qu
]
]
;
; Print message
;--------------------------
printDebug: function [msg][
print color #cyan ":: " ++ msg
]
;
; Format size
;--------------------------
formatSize: function [sz][
if sz < 1024 -> return sz
if sz < 1024*1024 -> return sz --> 'kB
if sz < 1024*1024*1024 -> return sz --> 'MB
if sz < 1024*1024*1024*1024 -> return sz --> 'GB
return @[]
]
;
; Get db analytics
;--------------------------
analytics: function [][
nodeCount: to :integer first first performQuery 'analytics countNodesSQL ø
edgeCount: to :integer first first performQuery 'analytics countEdgesSQL ø
avgDegree: edgeCount // nodeCount
filename: dbPath
filesize: 0
if not? empty? filename [
prefilesize: formatSize volume filename
filesize: #[
number: to :string scalar prefilesize
units: to :string units prefilesize
]
]
prememory: formatSize process\memory\occupied
mem: #[
number: to :string scalar prememory
units: to :string units prememory
]
return #[
database: #[
nodes: nodeCount
edges: edgeCount
degree: to :floating to :string .format: ".2f" avgDegree
]
memory: mem
disk: #[
path: filename
size: filesize
]
]
]
;
; Get suitable fg color
; depending on node bg
; for better contrast
;--------------------------
idealForeground: function [back][
rgbs: values extract back
lrgbs: map rgbs 'rgb [
C: rgb // 255
(C =< 0.03928)? -> C: C // 12.92
-> C: ((C+0.055)//1.055) ^ 2.4
C
]
L: (lrgbs\0*0.2126) + (lrgbs\1*0.7152) + (lrgbs\2*0.0722)
if L > 0.189 [ return #black ]
return #white
]
;
; Safe SQLite-compatible
; value codification
; including Unicode strings
;--------------------------
codifySafe: function [val][
(string? val)? [
return {"} ++ (escape.json val) ++ {"}
][
return express val
]
]
;
; Get styled node
; ready for use in the
; graph view
;--------------------------
styleNode: function [nodeId, nodeTag, nodeProps][
if not? key? Grafito\nodeColors nodeTag [
cpal: Grafito\Palette
cpal: colorPalettes\[cpal]
nodeColor: sample cpal
existingColors: map values Grafito\nodeColors => first
while [contains? existingColors nodeColor] ->
nodeColor: sample cpal
Grafito\nodeColors\[nodeTag]: @[
nodeColor
idealForeground nodeColor
]
updateMeta 'colors Grafito\nodeColors
]
bg: to :string Grafito\nodeColors\[nodeTag]\0
fg: to :string Grafito\nodeColors\[nodeTag]\1
nodeLabel: first values nodeProps
highlightField: #[
border: express darken to :color bg 0.2
background: bg
]
return #[
id: to :integer nodeId
tag: nodeTag
properties: nodeProps
label: truncate nodeLabel 10
fullLabel: nodeLabel
color: #[
border: bg
background: bg
hover: bg
highlight: highlightField
]
font: #[
color: fg
]
]
]
;
; Create new edge
;--------------------------
edge: function [
src :integer :dictionary
name :literal :string
tgt :integer :dictionary
][
;; description: « create edge from source to target node with given name
;; returns: :dictionary
srcId: src
tgtId: tgt
props: (attr "") ?? #[]
unless dictionary? props -> props: # props
if dictionary? srcId -> srcId: src\id
if dictionary? tgtId -> tgtId: tgt\id
edgeId: performQuery.id 'edge createEdgeSQL @[name, write.compact.json props ø, srcId, tgtId]
#[
id: edgeId
tag: name
properties: props
source: src
target: tgt
]
]
;
; Delete existing edge
;--------------------------
unedge: function [
src :integer
name :literal :string
tgt :integer
][
;; description: « delete edge from source to target node with given name
performQuery 'unedge deleteEdgeSQL @[name, src, tgt]
]
;
; Delete existing edge
; by id
;--------------------------
unedgeById: function [
eid :integer
][
;; description: « delete edge with given id
performQuery 'unedgeById deleteEdgeByIdSQL @[eid]
]
;
; Update single property
; by id
;--------------------------
editProperty: function [
nid :integer
prop :literal :string
val :any
][
;; description: « set or update single node property
performQuery 'editProperty updateNodePropertySQL @[~"$.|prop|", write.compact.json val ø, nid]
]
;
; Update meta value
;--------------------------
updateMeta: function [
prop :literal :string
val :any
][
;; description: « update a single meta value
editProperty 1 prop val
]
;
; Re-tag existing edge
; by id
;--------------------------
retagEdge: function [
eid :integer
tag :literal :string
][
;; description: « update edge with given tag
performQuery 'retag updateEdgeSQL @[tag, eid]
]
;
; Get node with properties
; from ID
;--------------------------
nodeFromId: function [nid][
results: performQuery 'nodeFromId getNodeSQL @[nid]
if empty? results ->
return ø
return #[
id: nid
tag: first first results
properties: read.json last first results
]
]
;
; Get nodeset
; for graph visualization
;--------------------------
nodeFromIds: function [nodes][
nodeset: nodes
if not? block? nodeset ->
nodeset: @[nodeset]
nodeElements: map nodeset 'nd -> styleNode nd\id nd\tag nd\properties
edgeElements: new []
loop nodeset [nd][
rezu: performQuery 'nodeFromIds getRelatedNodesSQL @[nd\id, nd\id, nd\id]
loop rezu [rez][
'nodeElements ++ styleNode rez\0 rez\1 read.json rez\2
'edgeElements ++ #[
id: ~"|rez\3|+|rez\4|+|rez\5|"
dbId: rez\6
label: rez\5
properties: read.json rez\7
from: to :integer rez\3
to: to :integer rez\4
]
]
]
unique 'nodeElements
unique 'edgeElements
return #[
nodes: nodeElements
edges: edgeElements
]
]
;
; Generate access helper
;--------------------------
generateHelper: function [id,block][
(not? null? attr 'new)? [
put id block
][
fetch id block
]
]
;==========================================
; REPL
;==========================================
;
; Switch verbosity on/off
;--------------------------
verbose: function [] [
Grafito\verbose?: not? Grafito\verbose?
]
;==========================================
; METHODS
;==========================================
;
; Create new node
;--------------------------
put: function [
name :literal :string
attributes :string :block :dictionary
][
;; description: « insert new node(s) to graph with given name and attributes
;; options: [
;; unique: « add only if node doesn't already exist
;; many: « add multiple nodes at once
;; ]
;; returns: :dictionary :block
if attr "unique" [
found: fetch name attributes
if not? empty? found -> return found
]
result: new []
(not? null? attr 'many)? [
lastId: to :integer first first performQuery 'put getMaxNodeIdSQL ø
queries: new []
vals: new []
loop attributes 'nd [
lastId: lastId + 1
att: nd
(block? att)? -> att: # att [
(string? att)? -> att: #[
name: att
] []
]
'queries ++ createNodeSQL
'vals ++ @[name, write.compact.json att ø]
'result ++ #[
id: lastId
tag: name
properties: att
]
]
performQuery 'put queries vals
if Grafito\verbose? ->
printDebug ~{created |size attributes| nodes}
] [
att: attributes
(block? att)? -> att: # att [
(string? att)? -> att: #[
name: att
] []
]
nodeId: performQuery.id 'put createNodeSQL @[name, write.compact.json att ø]
result: #[
id: nodeId
tag: name
properties: att
]
if Grafito\verbose? ->
printDebug ~{created 1 node (@|nodeId|) with |size att| propert|(1 = size att)? -> "y" -> "ies"|}
]
return result
]
;
; Update existing node
;--------------------------
edit: function [
nd :dictionary :block
attributes :block :dictionary
][
;; description: « update given node(s) with attributes
;; options: [
;; tag: :literal :string « also set new tag
;; replace: « replace entire object properties with given ones
;; ]
;; returns: :nothing
toUpdate: ø
(dictionary? nd)? ->
toUpdate: @[nd]
->
toUpdate: new nd
doReplace?: not? null? attr 'replace
withTag: attr 'tag
additional: attributes
if block? additional ->
additional: # additional
loop toUpdate 'updateable [
newAttributes: ø
(doReplace?)? ->
newAttributes: additional
->
newAttributes: extend updateable\properties additional
updateable\properties: newAttributes
(null? withTag)? ->
performQuery 'edit updateNodePropertiesSQL @[write.compact.json newAttributes ø, updateable\id]
->
performQuery 'edit updateNodeSQL @[withTag, write.compact.json newAttributes ø, updateable\id]
]
]
;
; Delete existing node
;--------------------------
unput: function [
nd :integer :dictionary :block
][
;; description: « remove given node(s) from graph
;; returns: :nothing
toDelete: ø
(block? nd)? ->
toDelete: new nd
->
toDelete: @[nd]
loop toDelete 'deletable [
nodeId: (dictionary? deletable) ? -> deletable\id -> deletable
performQuery 'unput @[
deleteNodeSQL, deleteNodeEdgesSQL
] @[
nodeId, nodeId, nodeId
]
]
]
;
; Link nodes with edges
;--------------------------
link: function [
src :block :dictionary
name :literal :string
tgt :block :dictionary
]
[
;; description: « create a connection from source to target node with given name
;; returns: :block :dictionary
edgeId: 0
(:dictionary = type tgt)? [
edges: new []
if :dictionary = type src [
ret: edge src name tgt
return ret
]
sr: @ src
loop sr [s]->
'edges ++ edge s name tgt
if Grafito\verbose? -> printDebug ~"created |size edges| edges"
return edges
][
edges: new []
tg: @ tgt
(:dictionary = type src)? [
loop tg [t][
'edges ++ edge src name t
]
][
sr: @ src
loop sr [s] [
loop tg [t]->
'edges ++ edge s name t
]
]
if Grafito\verbose? -> printDebug ~"created |size edges| edges"
return edges
]
]
reverseLink: function [
tgt :block :dictionary
name :literal :string
src :block :dictionary
][
link src name tgt
]
reciprocalLink: function [
src :block :dictionary
name :literal :string
tgt :block :dictionary
][
link src name tgt
link tgt name src
]
;
; Delete node edges
;--------------------------
unlink: function [
src :integer :dictionary :block
name :literal :string
tgt :integer :dictionary :block
][
;; description: « remove connection from source to target node with given name
nodesFrom: new []
nodesTo: new []
;case [(type src)=]
(dictionary? src)? -> nodesFrom: @[src\id]
[
(integer? src)? -> nodesFrom: @[src]
[
nodesFrom: new map src 'n [
(dictionary? n)? -> n\id
-> n
]
]
]
; when? -> :dictionary -> nodesFrom: @[src\id]
; when? -> :integer -> nodesFrom: @[src]
; else -> nodesFrom: new map src 'n [
; if? dictionary? n -> n\id
; else -> n
; ]
(dictionary? tgt)? -> nodesFrom: @[tgt\id]
[
(integer? tgt)? -> nodesFrom: @[tgt]
[
nodesFrom: new map tgt 'n [
(dictionary? n)? -> n\id
-> n
]
]
]
; if?case [(type tgt)=]
; when? -> :dictionary -> nodesTo: @[tgt\id]
; when? -> :integer -> nodesTo: @[tgt]
; else -> nodesTo: new map tgt 'n [
; if? dictionary? n -> n\id
; else -> n
; ]
loop nodesFrom 'nf [
loop nodesTo 'nt [
unedge nf name nt
]
]
if Grafito\verbose? [
totalEdges: mul size nodesFrom size nodesTo
edgeLabel: (totalEdges = 1) ? -> "edge" -> "edges"
printDebug ~"removed |totalEdges| |edgeLabel|"
]
]
;
; Check node type
;--------------------------
isA?: function [ls,nd][
nd\tag = to :string ls
]
;
; Helpers
; for edge filters
;--------------------------
edgeFilterRight: function [cnt, props][
pp: props
if block? pp -> pp: # pp
to :edgeFilter @[1, cnt, pp]
]
edgeFilterLeft: function [cnt, props][
pp: props
if block? pp -> pp: # pp
to :edgeFilter @[2, cnt, pp]
]
edgeFilterAny: function [cnt, props][
pp: props
if block? pp -> pp: # pp
to :edgeFilter @[3, cnt, pp]
]
;
; Fetch all results for tag
; with given properties
; and edges
;--------------------------
fetch: function [
name :literal :string
attributes :null :string :block :dictionary
][
;; description: « retrieves nodes with name that match all given attributes
;; options: [
;; .any « try matching any of the attributes
;; ]
;; returns: :block
;; setup main variables
catchAny?: false
if not? null? attr "any" ->
catchAny?: true
collator: ""
if not? Grafito\caseSensitive? ->
collator: " COLLATE NOCASE"
propertyFilters: new []
edgeFilters: new []
qvals: new @[name]
qpropvals: new []
qedgevals: new []
att: new attributes
(string? att)? [
[collate,symb,val]: @[collator, "=", codifySafe att]
; add it once (to check for `name`)
'propertyFilters ++ ~nodePropertyWithValueFilter
'qpropvals ++ @[~"$.name"]
; add it once more (to check for `title`)
'propertyFilters ++ ~nodePropertyWithValueFilter
'qpropvals ++ @[~"$.title"]
; we won't it to be valid when any of the two criteria above is true
; so we'll have to forcefully set `catchAny?` to true
catchAny?: true
]
[
if and? not? dictionary? att
not? null? att ->
att: # att
; ; HACK - to solve
; remove.key 'att 'n
; remove.key 'att 'a
if not? empty? att [
loop att [k,v][
if null? v [
; it's an edge filter without criteria
'edgeFilters ++ hasEdgeFilter
'qedgevals ++ @[k]
continue
]
if dictionary? v [
; it's an edge filter
searchForProperties: ""
'edgeFilters ++ ~edgeWithTargetFilter
'qedgevals ++ @[k, v\id]
continue
]
if is? :edgeFilter v [
; it's a directed edge filter
if dictionary? v\content [
searchForProperties: ""
subfilters: []
subvals: []
if not? empty? v\properties [
collator: ""
if not? Grafito\caseSensitive? ->
collator: " COLLATE NOCASE"
subfilters: new []
loop v\properties [kk,vv][
[collate,symb,val]: @[collator, "=", codifySafe vv]
subvals: subvals ++ ~"$.|kk|"
subfilters: subfilters ++ ~edgePropertyWithValueFilter
]
subfilters: join.with:" AND " subfilters
searchForProperties: ~"AND (|subfilters|)"
]
(v\direction = 1)? [
'edgeFilters ++ ~edgeWithTargetFilter
'qedgevals ++ @[k, v\content\id] ++ subvals
][
(v\direction = 2)? [
'edgeFilters ++ ~edgeWithSourceFilter
'qedgevals ++ @[k, v\content\id] ++ subvals
][
(v\direction = 3)? [
'edgeFilters ++ ~edgeWithAnyFilter
'qedgevals ++ @[k, v\content\id, v\content\id] ++ subvals
][
print "Shouldn't have reached here!"
]
]
]
]
if all? @[
block? v\content
or?
and? [0 < size v\content]
[:dictionary = type first v\content]
not? empty? v\properties
][
searchForProperties: ""
subfilters: []
subvals: []
if not? empty? v\properties [
collator: ""
if not? Grafito\caseSensitive? ->
collator: " COLLATE NOCASE"
subfilters: new []
loop v\properties [kk,vv][
[collate,symb,val]: @[collator, "=", codifySafe vv]
subvals: subvals ++ ~"$.|kk|"
subfilters: subfilters ++ ~edgePropertyWithValueFilter
]
subfilters: join.with:" AND " subfilters
searchForProperties: ~"AND (|subfilters|)"
]
orCriteria: new []
(0 < size v\content)? [
loop v\content [edgef][
(v\direction = 1)? [
'orCriteria ++ ~edgeWithTargetFilter
'qedgevals ++ @[k, edgef\id] ++ subvals
][
(v\direction = 2)? [
'orCriteria ++ ~edgeWithSourceFilter
'qedgevals ++ @[k, edgef\id] ++ subvals
][
(v\direction = 3)? [
'orCriteria ++ ~edgeWithAnyFilter
'qedgevals ++ @[k, edgef\id, edgef\id] ++ subvals
][
print "Shouldn't have reached here!"
]
]
]
]
][
'orCriteria ++ ~edgeWithPropertiesFilter
'qedgevals ++ @[k] ++ subvals
]
'edgeFilters ++ "(" ++ (join.with:" OR " orCriteria) ++ ")"
]
continue
]
if block? v [
(and? 0 < size v
:dictionary = type first v)? [
; it's an array of edge filters
orCriteria: new []
loop v [edgef][
searchForProperties: ""
'orCriteria ++ ~edgeWithTargetFilter
'qedgevals ++ @[k, edgef\id]
]
'edgeFilters ++ "(" ++ (join.with:" OR " orCriteria) ++ ")"
]
[
; it's a complex property filter
loop # v [filt,rg][
[collate,symb,val]: @[collator, "=", v]
requiresCodification: true
(filt = "contains")? -> [collate,symb,val]: @["", "LIKE", ~"%|rg|%"]
[
(filt = "prefix")? -> [collate,symb,val]: @["", "LIKE", ~"|rg|%"]
[
(filt = "suffix")? -> [collate,symb,val]: @["", "LIKE",
gitextract_hq975k_i/
├── .gitattributes
├── .github/
│ ├── FUNDING.yml
│ └── workflows/
│ ├── release.yml
│ ├── test.yml
│ └── todos.yml
├── .gitignore
├── Dockerfile
├── LICENSE
├── README.md
├── examples/
│ ├── sample1.art
│ ├── sample10.art
│ ├── sample11.art
│ ├── sample12.art
│ ├── sample2.art
│ ├── sample3.art
│ ├── sample4.art
│ ├── sample4b.art
│ ├── sample4c.art
│ ├── sample4d.art
│ ├── sample5.art
│ ├── sample6.art
│ ├── sample7.art
│ ├── sample8.art
│ └── sample9.art
├── grafito.art
├── info.art
├── logo.txt
├── sql/
│ ├── filters/
│ │ ├── edgePropertyWithValue.sql
│ │ ├── edgeWithAny.sql
│ │ ├── edgeWithProperties.sql
│ │ ├── edgeWithSource.sql
│ │ ├── edgeWithTarget.sql
│ │ ├── hasEdge.sql
│ │ ├── hasProperty.sql
│ │ └── nodePropertyWithValue.sql
│ ├── pragmas/
│ │ ├── caseInsensitiveLike.sql
│ │ └── caseSensitiveLike.sql
│ ├── procs/
│ │ ├── countEdges.sql
│ │ ├── countNodes.sql
│ │ ├── createEdge.sql
│ │ ├── createNode.sql
│ │ ├── deleteEdge.sql
│ │ ├── deleteEdgeById.sql
│ │ ├── deleteNode.sql
│ │ ├── deleteNodeEdges.sql
│ │ ├── fetchNodes.sql
│ │ ├── fetchNodes.withEdges.sql
│ │ ├── getAllNodeTags.sql
│ │ ├── getMaxNodeId.sql
│ │ ├── getNode.sql
│ │ ├── getRelatedNodes.sql
│ │ ├── updateEdge.sql
│ │ ├── updateNode.sql
│ │ ├── updateNodeProperties.sql
│ │ └── updateNodeProperty.sql
│ └── schema.sql
└── ui/
├── index.html
├── palettes/
│ ├── default.art
│ ├── earthy.art
│ ├── inferno.art
│ ├── light.art
│ ├── magma.art
│ ├── pastel.art
│ ├── playful.art
│ ├── rainbow.art
│ ├── vibrant.art
│ └── viridis.art
├── scripts/
│ ├── ace/
│ │ ├── ace.js
│ │ ├── modes/
│ │ │ └── grafito.js
│ │ └── themes/
│ │ └── monokai.js
│ └── app.js
└── styles/
└── app.less
SYMBOL INDEX (102 symbols across 3 files)
FILE: sql/schema.sql
type nodes (line 4) | CREATE TABLE nodes (
type node_index (line 10) | CREATE INDEX IF NOT EXISTS node_index ON nodes(id)
type node_tag_index (line 11) | CREATE INDEX IF NOT EXISTS node_tag_index ON nodes(tag)
type edges (line 14) | CREATE TABLE edges (
type edges_index (line 24) | CREATE INDEX IF NOT EXISTS edges_index ON edges(id)
type edges_source_index (line 25) | CREATE INDEX IF NOT EXISTS edges_source_index ON edges(source)
type edges_target_index (line 26) | CREATE INDEX IF NOT EXISTS edges_target_index ON edges(target)
FILE: ui/scripts/ace/ace.js
function r (line 1) | function r(){}
function w (line 1) | function w(e){try{return Object.defineProperty(e,"sentinel",{}),"sentine...
function H (line 1) | function H(e){return(e=+e)!=e?e=0:0!==e&&e!==1/0&&e!==-1/0&&(e=(0<e||-1)...
function e (line 1) | function e(t){t=new Array(t+2);return t[0]=t[1]=0,t}
function i (line 1) | function i(){}
function o (line 1) | function o(e,t,n){var l,o=s(t);if(!i.isMac&&u){if((u[91]||u[92])&&(o|=8)...
function i (line 1) | function i(e){n&&n(e),r&&r(e),t.removeListener(document,"mousemove",n,!0...
function n (line 1) | function n(){t=null,e()}
function r (line 1) | function r(){n=null,e()}
function i (line 1) | function i(e){null==n&&(n=setTimeout(r,e||t))}
function b (line 1) | function b(r){if(!h){var t,r=k?(t=0,r?0:n.value.length-1):(t=r?2:1,2);tr...
function w (line 1) | function w(){h||(n.value=f,i.isWebKit&&y.schedule())}
function q (line 1) | function q(){setTimeout(function(){p&&(n.style.cssText=p,p=""),null==t.r...
function M (line 1) | function M(r,t){var n=r.clipboardData||window.clipboardData;if(n&&!u){r=...
function _ (line 1) | function _(e,i){var s=t.getCopyText();if(!s)return r.preventDefault(e);M...
function D (line 1) | function D(e){_(e,!0)}
function P (line 1) | function P(e){_(e,!1)}
function H (line 1) | function H(e){var s=M(e);"string"==typeof s?(s&&t.onPaste(s),i.isIE&&set...
function t (line 1) | function t(t){e.focus()}
function o (line 1) | function o(e){if(e)return i.isWebKit&&!e.which&&s.releaseMouse?s.release...
function a (line 1) | function a(e){clearInterval(l),f(),s[s.state+"End"]&&s[s.state+"End"](e)...
function u (line 1) | function u(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler(...
function f (line 1) | function f(e,t){return(e.start.row==e.end.row?2*t.column-e.start.column-...
function a (line 1) | function a(e){o.call(this,e)}
function l (line 1) | function l(){var v=u.getDocumentPosition().row,d=n.$annotations[v];if(!d...
function c (line 1) | function c(){o=o&&clearTimeout(o),f&&(i.hide(),f=null,t.removeEventListe...
function h (line 1) | function h(e){i.setPosition(e.x,e.y)}
function s (line 1) | function s(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}
function f (line 1) | function f(e){function C(){var e=g;(function(e,s){var r=Date.now(),i=!s|...
function l (line 1) | function l(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}
function i (line 1) | function i(){this.propagationStopped=!0}
function s (line 1) | function s(){this.defaultPrevented=!0}
function p (line 1) | function p(e,t){this.$breakpoints=[],this.$decorations=[],this.$frontMar...
function g (line 1) | function g(e){return!(e<4352)&&(4352<=e&&e<=4447||4515<=e&&e<=4519||4602...
function r (line 1) | function r(n){n="insertText"===n.action||"insertLines"===n.action;return...
function a (line 1) | function a(t){var r=e.slice(i,t),o=r.length;r.join("").replace(/12/g,fun...
function i (line 1) | function i(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}}
function w (line 1) | function w(e){for(var t=n;t<=r;t++)e(i.getLine(t),t)}
function i (line 1) | function i(e){for(var t in this.states=e,this.regExps={},this.matchMappi...
function e (line 1) | function e(e,t){return"start"==e&&!t.length||t.unshift(this.nextState,e)...
function t (line 1) | function t(e,t){return t.shift(),t.shift()||"start"}
function r (line 1) | function r(){this.$behaviours={}}
function r (line 1) | function r(e,t,r){this.$session=e,this.$row=t,this.$rowTokens=e.getToken...
function i (line 1) | function i(n,t){this.foldData=n,Array.isArray(t)?this.folds=t:t=this.fol...
function u (line 1) | function u(e,t){e.row-=t.row,0==e.row&&(e.column-=t.column)}
function a (line 1) | function a(e,t){u(e.start,t),u(e.end,t)}
function f (line 1) | function f(e,t){0==e.row&&(e.column+=t.column),e.row+=t.row}
function s (line 1) | function s(e,t){var n,r;this.platform=t||(i.isMac?"mac":"win"),this.comm...
function s (line 1) | function s(e,t){return{win:e,mac:t}}
function r (line 1) | function r(){this.reset()}
function o (line 1) | function o(r){if(n.$themeId!=e)return t&&t();var s;r.cssClass&&(i.import...
function u (line 1) | function u(e){this.element=i.createElement("div"),this.element.className...
function a (line 1) | function a(e,t){u.call(this,e),this.scrollTop=0,t.$scrollbarWidth=this.w...
function m (line 1) | function m(e){e.$multiselectOnSessionChange||(e.$onAddRange=e.$onAddRang...
function u (line 1) | function u(e){return a.stringRepeat(" ",e)}
function f (line 1) | function f(e){return e[2]?u(i)+e[2]+u(s-e[2].length+o)+e[4].replace(/^([...
function i (line 1) | function i(e,t){return e.row==t.row&&e.column==t.column}
function u (line 1) | function u(c,n,r,l){var s,u;this.$sendDeltaQueue=this.$sendDeltaQueue.bi...
function a (line 1) | function a(e,t,n){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),t...
function u (line 1) | function u(e,t,n){var r=e.getAnnotations().sort(s.comparePoints);if(r.le...
function m (line 1) | function m(e,t,n){if(0===t&&("esc"===n||"return"===n))return h.destroy()...
function o (line 1) | function o(e){this.session=e,(this.session.widgetManager=this).session.g...
FILE: ui/scripts/app.js
method data (line 8) | data() {
method getInputTypeForValue (line 241) | getInputTypeForValue(val){
method getInputIconForValue (line 248) | getInputIconForValue(key,val){
method processCommand (line 257) | processCommand(){
method copyQueryToClipboard (line 317) | copyQueryToClipboard(queryId){
method rerunQuery (line 323) | rerunQuery(queryId){
method toggleMultilineMode (line 329) | toggleMultilineMode(){
method expandNodeNeighbors (line 364) | expandNodeNeighbors(nodeId=null){
method removeNode (line 389) | removeNode(nodeId=null){
method deleteNode (line 401) | deleteNode(nodeId=null, message="Delete selected node", andThen=null){
method removeEdge (line 428) | removeEdge(edgeId=null){
method deleteEdge (line 440) | deleteEdge(edgeId=null, message="Delete selected edge", showConfirmation...
method removeElement (line 462) | removeElement(){
method deleteElement (line 467) | deleteElement(){
method linkNodeMode (line 473) | linkNodeMode(nodeId=null){
method addEdgeHandler (line 478) | addEdgeHandler(data, callback){
method showConfirmationDialog (line 494) | showConfirmationDialog(title, callback, button="Delete", style="is-destr...
method showFilterDialog (line 507) | showFilterDialog(){
method showAddNodeDialog (line 520) | showAddNodeDialog(){
method showPaletteDialog (line 555) | showPaletteDialog(){
method addNewNodeField (line 583) | addNewNodeField(){
method showEditNodeDialog (line 596) | showEditNodeDialog(){
method showAddEdgeDialog (line 638) | showAddEdgeDialog(){
method showEditEdgeDialog (line 667) | showEditEdgeDialog(){
method resetFilterData (line 702) | resetFilterData(nomatterwhat=false){
method getAnalytics (line 726) | getAnalytics(){
method drawGraph (line 737) | drawGraph(dataset, clean=false, firstDraw=false){
method drawTable (line 837) | drawTable(rows){
method refreshGraph (line 873) | refreshGraph() {
method updateGraphView (line 877) | updateGraphView() {
method updateEngineSettings (line 902) | updateEngineSettings() {
method mounted (line 913) | mounted(){
method updated (line 937) | updated(){
Condensed preview — 72 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (776K chars).
[
{
"path": ".gitattributes",
"chars": 52,
"preview": "*.art linguist-language=Red\n*.art linguist-vendored\n"
},
{
"path": ".github/FUNDING.yml",
"chars": 20,
"preview": "github: [drkameleon]"
},
{
"path": ".github/workflows/release.yml",
"chars": 2693,
"preview": "name: \"Release\"\non:\n push:\n tags:\n - 'v*.*.*'\nenv:\n app-name: grafito\n\ndefaults:\n run:\n shell: bash -l {0}"
},
{
"path": ".github/workflows/test.yml",
"chars": 2144,
"preview": "name: \"CI\"\non:\n push:\n branches:\n - master\n pull_request:\n types: [opened, synchronize]\n w"
},
{
"path": ".github/workflows/todos.yml",
"chars": 351,
"preview": "name: \"TODO -> Issue\"\non:\n push:\n branches:\n - 'main'\n tags-ignore:\n - '**'\njobs:\n build:\n runs-on:"
},
{
"path": ".gitignore",
"chars": 63,
"preview": "*.db\n*.graf\ntest*.sql\ntest*.nim\ntest*.html\ntesty.art\ntest*.art\n"
},
{
"path": "Dockerfile",
"chars": 194,
"preview": "FROM arturolang/arturo\n\nRUN apk update && apk upgrade\nRUN apk add --no-cache sqlite-dev\nRUN apk add sqlite\n\nADD grafito"
},
{
"path": "LICENSE",
"chars": 1074,
"preview": "MIT License\n\nCopyright (c) 2024 Yanis Zafirópulos\n\nPermission is hereby granted, free of charge, to any person obtaining"
},
{
"path": "README.md",
"chars": 19453,
"preview": "\n<p align=\"center\"><img align=\"center\" width=\"350\" src=\"https://raw.githubusercontent.com/arturo-lang/grafito/master/log"
},
{
"path": "examples/sample1.art",
"chars": 1007,
"preview": ";; Just run this with:\n;; arturo sample.art\n;;\n;; This will create a local sample.db\n;; along with the corresponding dot"
},
{
"path": "examples/sample10.art",
"chars": 398,
"preview": "do.import {grafito.art}\n\ndo [\n ;---------------------------------------------\n ; Set up a new graph environment\n "
},
{
"path": "examples/sample11.art",
"chars": 7228,
"preview": ";---------------------------------------------\n; Import Grafito\n; and ... let's rock'n'roll! :)\n;-----------------------"
},
{
"path": "examples/sample12.art",
"chars": 76346,
"preview": "do.import {grafito.art}\n\ndo [\n ;---------------------------------------------\n ; Set up a new graph environment\n "
},
{
"path": "examples/sample2.art",
"chars": 509,
"preview": "do.import {grafito.art}\n\ndo [ graph.create \"sample2\" [\n honorEnN: put'Pos [p:\"noun\"]\n honorEsN: put'Pos [p:\"noun\"]"
},
{
"path": "examples/sample3.art",
"chars": 1035,
"preview": "do.import {grafito.art}\n\ndo [\n graph.create \"sample3\" [\n nick: put'person [name: \"Nick\", sex: \"m\", birth: 1957"
},
{
"path": "examples/sample4.art",
"chars": 2493,
"preview": ";---------------------------------------------\n; Import Grafito\n; and ... let's rock'n'roll! :)\n;-----------------------"
},
{
"path": "examples/sample4b.art",
"chars": 3509,
"preview": ";---------------------------------------------\n; Import Grafito\n; and ... let's rock'n'roll! :)\n;-----------------------"
},
{
"path": "examples/sample4c.art",
"chars": 3182,
"preview": ";---------------------------------------------\n; Import Grafito\n; and ... let's rock'n'roll! :)\n;-----------------------"
},
{
"path": "examples/sample4d.art",
"chars": 3556,
"preview": ";---------------------------------------------\n; Import Grafito\n; and ... let's rock'n'roll! :)\n;-----------------------"
},
{
"path": "examples/sample5.art",
"chars": 30684,
"preview": "do.import {grafito.art}\n\ndo [\n graph.create \"sample5\" [\n lemma8b257cd027: put 'lemma [w: {book} l: {en}]\n "
},
{
"path": "examples/sample6.art",
"chars": 384,
"preview": "do.import {grafito.art}\n\ndo [\n graph \"sample6\" [\n put'person [name: \"John\" surname: \"Doe\" age: 34]\n put"
},
{
"path": "examples/sample7.art",
"chars": 620,
"preview": "do.import {grafito.art}\n\ndo [\n graph.create \"sample7\" [\n put'country [name: \"United States\"]\n put'count"
},
{
"path": "examples/sample8.art",
"chars": 1993,
"preview": "do.import {grafito.art}\n\ndo [\n graph.create \"sample8\" [\n ;---------------------------------------------\n "
},
{
"path": "examples/sample9.art",
"chars": 8581,
"preview": ";---------------------------------------------\n; Import Grafito\n; and ... let's rock'n'roll! :)\n;-----------------------"
},
{
"path": "grafito.art",
"chars": 44351,
"preview": "#!/usr/bin/env arturo\n;========================================================\n; Grafito\n;\n; SQLite-based Graph Databas"
},
{
"path": "info.art",
"chars": 71,
"preview": "entry: {grafito}\nexecutable: {grafito}\ndepends: []\nrequires: [> 0.9.83]"
},
{
"path": "logo.txt",
"chars": 279,
"preview": " __ _ _ \n / _(_) | \n __ _ _ __ __ _| |_ _| |_ ___ \n / _` | '__/ "
},
{
"path": "sql/filters/edgePropertyWithValue.sql",
"chars": 57,
"preview": "(json_extract(edges.properties, ?)|collate| |symb| |val|)"
},
{
"path": "sql/filters/edgeWithAny.sql",
"chars": 74,
"preview": "(edges.tag=? AND (edges.target=? OR edges.source=?) |searchForProperties|)"
},
{
"path": "sql/filters/edgeWithProperties.sql",
"chars": 39,
"preview": "(edges.tag=? AND |searchForProperties|)"
},
{
"path": "sql/filters/edgeWithSource.sql",
"chars": 54,
"preview": "(edges.tag=? AND edges.source=? |searchForProperties|)"
},
{
"path": "sql/filters/edgeWithTarget.sql",
"chars": 54,
"preview": "(edges.tag=? AND edges.target=? |searchForProperties|)"
},
{
"path": "sql/filters/hasEdge.sql",
"chars": 13,
"preview": "(edges.tag=?)"
},
{
"path": "sql/filters/hasProperty.sql",
"chars": 39,
"preview": "(json_extract(nodes.properties, ?)!='')"
},
{
"path": "sql/filters/nodePropertyWithValue.sql",
"chars": 57,
"preview": "(json_extract(nodes.properties, ?)|collate| |symb| |val|)"
},
{
"path": "sql/pragmas/caseInsensitiveLike.sql",
"chars": 30,
"preview": "PRAGMA case_sensitive_like = 0"
},
{
"path": "sql/pragmas/caseSensitiveLike.sql",
"chars": 30,
"preview": "PRAGMA case_sensitive_like = 1"
},
{
"path": "sql/procs/countEdges.sql",
"chars": 27,
"preview": "SELECT COUNT(id)\nFROM edges"
},
{
"path": "sql/procs/countNodes.sql",
"chars": 27,
"preview": "SELECT COUNT(id)\nFROM nodes"
},
{
"path": "sql/procs/createEdge.sql",
"chars": 72,
"preview": "INSERT INTO edges (tag, properties, source, target) \nVALUES (?, ?, ?, ?)"
},
{
"path": "sql/procs/createNode.sql",
"chars": 50,
"preview": "INSERT INTO nodes (tag, properties) \nVALUES (?, ?)"
},
{
"path": "sql/procs/deleteEdge.sql",
"chars": 57,
"preview": "DELETE \nFROM edges \nWHERE tag=? AND source=? AND target=?"
},
{
"path": "sql/procs/deleteEdgeById.sql",
"chars": 30,
"preview": "DELETE \nFROM edges \nWHERE id=?"
},
{
"path": "sql/procs/deleteNode.sql",
"chars": 30,
"preview": "DELETE \nFROM nodes \nWHERE id=?"
},
{
"path": "sql/procs/deleteNodeEdges.sql",
"chars": 46,
"preview": "DELETE \nFROM edges \nWHERE source=? OR target=?"
},
{
"path": "sql/procs/fetchNodes.sql",
"chars": 83,
"preview": "SELECT nodes.id, nodes.tag, nodes.properties\nFROM nodes\nWHERE nodes.tag=? |propies|"
},
{
"path": "sql/procs/fetchNodes.withEdges.sql",
"chars": 255,
"preview": "SELECT nodes.id, nodes.tag, nodes.properties\nFROM nodes\nINNER JOIN edges\nON edges.source=nodes.id OR edges.target=nodes."
},
{
"path": "sql/procs/getAllNodeTags.sql",
"chars": 31,
"preview": "SELECT DISTINCT tag \nFROM nodes"
},
{
"path": "sql/procs/getMaxNodeId.sql",
"chars": 26,
"preview": "SELECT MAX(id) \nFROM nodes"
},
{
"path": "sql/procs/getNode.sql",
"chars": 64,
"preview": "SELECT nodes.tag, nodes.properties \nFROM nodes \nWHERE nodes.id=?"
},
{
"path": "sql/procs/getRelatedNodes.sql",
"chars": 234,
"preview": "SELECT nodes.id, nodes.tag, nodes.properties, source, target, edges.tag, edges.id AS label, edges.properties\nFROM edges "
},
{
"path": "sql/procs/updateEdge.sql",
"chars": 34,
"preview": "UPDATE edges \nSET tag=?\nWHERE id=?"
},
{
"path": "sql/procs/updateNode.sql",
"chars": 48,
"preview": "UPDATE nodes \nSET tag=?, properties=?\nWHERE id=?"
},
{
"path": "sql/procs/updateNodeProperties.sql",
"chars": 41,
"preview": "UPDATE nodes \nSET properties=?\nWHERE id=?"
},
{
"path": "sql/procs/updateNodeProperty.sql",
"chars": 69,
"preview": "UPDATE nodes \nSET properties = json_set(properties, ?, ?) \nWHERE id=?"
},
{
"path": "sql/schema.sql",
"chars": 744,
"preview": "PRAGMA encoding=\"UTF-8\";\n\nDROP TABLE IF EXISTS nodes;\nCREATE TABLE nodes (\n id INTEGER PRIMARY KEY,\n tag "
},
{
"path": "ui/index.html",
"chars": 45315,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n <head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width="
},
{
"path": "ui/palettes/default.art",
"chars": 151,
"preview": "#130075\n#3d0075\n#bd8ed1\n#75250e\n#756c10\n#567513\n#A5D180\n#00752B\n#005f73\n#0a9396\n#94d2bd\n#e9d8a6\n#d1ad94\n#ee9b00\n#ca6702\n"
},
{
"path": "ui/palettes/earthy.art",
"chars": 127,
"preview": "#c27e88\n#a9505c\n#c3887d \n#aa5d4e\n#7a4238\n#b2c77a\n#94b049 \n#6a7d34 \n#90b1b1 \n#679292 \n#496868 \n#ae9d92\n#8f786a \n#66564b \n"
},
{
"path": "ui/palettes/inferno.art",
"chars": 119,
"preview": "#fcffa4\n#f2ea69\n#f8cd37\n#fcb014\n#fa9407\n#f47918\n#e9612b\n#d94d3d\n#c63d4d\n#b0315b\n#982766\n#801f6c\n#69166e\n#510e6c\n#380962"
},
{
"path": "ui/palettes/light.art",
"chars": 199,
"preview": "#a0bfe8\n#6698da\n#3072c9\n#22518f\n#143156\n#eabd9e\n#de9563\n#ce6d2b\n#934e1f\n#582e12\n#edac9b\n#e27a5e\n#d44a25\n#97351a\n#5a1f10\n"
},
{
"path": "ui/palettes/magma.art",
"chars": 119,
"preview": "#f0f921\n#fada24\n#febd2a\n#fba238\n#f48849\n#e97158\n#db5c68\n#cc4778\n#b83289\n#a31e9a\n#8b0aa5\n#6f00a8\n#5302a3\n#350498\n#0d0887"
},
{
"path": "ui/palettes/pastel.art",
"chars": 79,
"preview": "#3bb2d0\n#3887be\n#8a8acb\n#56b881\n#50667f\n#41afa5\n#f9886c\n#e55e5e\n#ed6498\n#fbb03b"
},
{
"path": "ui/palettes/playful.art",
"chars": 95,
"preview": "#7ac70c\n#8ee000\n#faa918\n#ffc715\n#d33131\n#e53838\n#1cb0f6\n#14d4f4\n#8549ba\n#a560e8\n#4c4c4c\n#6f6f6f"
},
{
"path": "ui/palettes/rainbow.art",
"chars": 87,
"preview": "#4aae20\n#6cc751\n#225f1e\n#f8cc07\n#ff9300\n#e44436\n#cd3292\n#37aef3\n#0076ba\n#005888\n#8732cd"
},
{
"path": "ui/palettes/vibrant.art",
"chars": 79,
"preview": "#ff6050\n#ff0e83\n#d54262\n#813867\n#66336e\n#5677fc\n#341539\n#9013fe\n#ffc208\n#00cc99"
},
{
"path": "ui/palettes/viridis.art",
"chars": 119,
"preview": "#fde725\n#d0e11c\n#a0da39\n#73d056\n#4ac16d\n#2db27d\n#1fa187\n#21918c\n#277f8e\n#2e6e8e\n#365c8d\n#3f4788\n#46327e\n#481b6d\n#440154"
},
{
"path": "ui/scripts/ace/ace.js",
"chars": 323132,
"preview": "(function(){var t=function(){return this}();var n=function(e,t,r){\"string\"==typeof e?(2==arguments.length&&(r=t),n.modul"
},
{
"path": "ui/scripts/ace/modes/grafito.js",
"chars": 12826,
"preview": "ace.define(\"ace/mode/grafito_highlight_rules\", [\"require\", \"exports\", \"module\", \"ace/lib/oop\", \"ace/mode/text_highlight_"
},
{
"path": "ui/scripts/ace/themes/monokai.js",
"chars": 2845,
"preview": "ace.define(\"ace/theme/monokai\", [\"require\", \"exports\", \"module\", \"ace/lib/dom\"], function(e, t, n) {\n t.isDark = !0, "
},
{
"path": "ui/scripts/app.js",
"chars": 38071,
"preview": "\nconst toastSuccess = (msg)=>{ iziToast.success({title: 'OK', message: msg})};\nconst toastWarning = (msg)=>{ iziToast.wa"
},
{
"path": "ui/styles/app.less",
"chars": 114106,
"preview": "/****************************************************\n Global variables\n ***********************************************"
}
]
About this extraction
This page contains the full source code of the arturo-lang/grafito GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 72 files (734.5 KB), approximately 248.9k tokens, and a symbol index with 102 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.