Package: davar
and byOpen Multilingual Wordnet0.2.0: Added Open Multilingual Wordnet synset as node type and as rel typedavarAn experimental interpreted international auxilliary language that aims to be extremely easy to translate into other languages, through the use of external databases (currentlyWikidataandOpen Multilingual Wordnet) for translation strings and very minimal grammar.
This package contains both a class for containing writing in davar and describing[1]it in other languages and a command line tool which can do the same.PurposeCurrently there is no reliable way to communicate cross-linguistically. Machine translation tries to solve this, but often runs into fundamental issues explained wellhere. Rather than by solving that with a constructed auxilliary language like Esperanto or Volapük,davaraims to solve this by creating a notation for simple statements that is language-neutral, and that a computer can easily describe in any language. This is achieved through the minimization of grammar and use of external data sets as a source of translation strings.SyntaxThe basic building blocks of davar areNodesandRels:NodesNodesrepresent items or ideas, and can currently beWikidata items,Open Multilingual Wordnet (OMW) synsets, or davar statements, which will be explained later.Wikidata itemsare written with Wikidata item identifiers, ex:Q42.OMW synsetsare written using a WordNet locator and offset, ex:02084071-n.RelsRels represent a specific type of relationship that can be had between nodes, and can currently either beWikidata propertiesorOMW synsets.Note that OMW synsets can be both nodes and rels, to allow for flexibility. This may be changed in later releases of davar.Wikidata propertiesare written as Wikidata property identifiers, ex:P828Wikidata item and properties can be found by searchingWikidata, and OMW synsets can be found on theOMW search interface.Nodes and rels can be combined to makeStatements, of which there are currently three types:Singleton StatementSingleton statements are the most basic type of statement:(Subject)whereSubjectis either a Node or another Statement. This statement is not very meaningful, but means something along the lines of "Subjectexists". For example,(Q2013)will be described in English asWikidata., which can be understood as "consider Wikidata" or "Wikidata exists."EdgeEdges are statements that connect anSubjectto anObject:(Subject Object)whereSubjectandObjectcan either be a Node or a Statement. This statement encodes an unspecified relationship between theSubjectand theObject. For example,(Q2 00217728-a)will be described in English asEarth → beautifulwhich can be understood as "there is a relationship between Earth and beauty" or "Earth is beautiful".Labeled EdgeLabeled Edges are statements that connect anSubjectto anObjectin a way specified by aRelationship:(Relationship Subject Object)whereSubjectandObjectcan either be a Node or a Statement andRelationshipis a Rel. This statement encodes a specified relationship between theSubjectand theObject. For example,(P31 Q42 Q5)will be described in English asDouglas Adams → human (instance of), which can be understood as "Douglas Adams is a human."Note that statements can themselves be nodes in other statements:(Subject1 (Relationship Object Subject2))is a valid construction.ExamplesSome examples of more complex davar writing:Self-Descriptiondavar:(Q28865 (P31 Q3236990 Q5482740))English Description:Python → [self → programmer (instance of)]Meaning:When it comes to Python, I am a programmer.orI am a python programmer.Analogydavar:(02664769-v (Q9128 Q204170) (Q11461 Q502261))English Description:[light → darkness] → [sound → silence] (equal).Meaning:The relationship between light and darkness is the same as the relationship between sound and silence.orlight is to darkness as sound is to silenceFiction:davar:(00060632-r (02612762-v Q3236990 Q8460327))
(00048475-r (P108 Q3236990 Q2599656))English Description:previously → [self → Unseen University (attend)].nowadays → [self → Twoflower (employer)].Meaning:In the past I went to Unseen University. Now I am employed by Twoflower.UsageNote: On first run of either the command line tool or the package, around 100mb of data will be downloaded to./nltk_datain order to allow OMW to be used.Command Line ToolTo describe a string of davar in a language, usepython -m davar DAVARTEXT -l LANGwhere LANG is a two character language code and DAVARTEXT is a string consisting of statements written in davar. This will cause errors if theLANGis in the wrong format or isn't available for the given Wikidata item, which I will get around to handling later.PackageTo change a string of davar into aDavarobject, used = Davar.from_davartext(davartext). Then, to describe theDavarobject in a readable language, used.describe(lang)wherelangis a string containing a two character language code.Footnotes1: We call itdescribingrather thantranslatingbecause the output is not anything close to natural language. Rather, it is a mix of symbols and words that conveys the relationships described in the corresponding davar statements.Citations:Powered by Wikidata.Francis Bond and Kyonghee Paik (2012)
    A survey of wordnets and their licenses In Proceedings of the 6th Global WordNet Conference (GWC 2012). Matsue. 64–71
Francis Bond and Ryan Foster (2013)
    Linking and extending an open multilingual wordnet. In 51st Annual Meeting of the Association for Computational Linguistics: ACL-2013. Sofia. 1352–1362