hypertopic / argos Goto Github PK
View Code? Open in Web Editor NEWContradictory/complementary categorisations management
Home Page: https://hypertopic.org/
License: GNU Affero General Public License v3.0
Contradictory/complementary categorisations management
Home Page: https://hypertopic.org/
License: GNU Affero General Public License v3.0
According to the specification, upper topics should be allowed with no broader
members.
It has been reported by @gumn that Argos implementation fails when broader
is not defined.
Workaround (till Argos bug is fixed): set broader:[]
instead.
Viewpoints exported from Porphyry cannot be imported.
To reproduce the bug:
POST /argos/_design/argos/_update/viewpoint
<?xml version="1.0" encoding="utf-8"?>
<!-- Created with Porphyry -->
<map>
<node TEXT="Age du fer (Mountjoy)">
<node ID="topic_6523" TEXT="FORMES">
<node ID="topic_6526" TEXT="Skyphoi" FOLDED="true">
<node LINK="http://steatite.hypertopic.org/entity/5fedf5dadacc522830df46b770741f89966856ac"/>
<node LINK="http://steatite.hypertopic.org/entity/c7444166ef62f09411eccebffa08b52992bb6dd1"/>
<node LINK="http://steatite.hypertopic.org/entity/5aba9e77f4f9f369b5ca76d51c15d4d3a1ac88f1"/>
<node LINK="http://steatite.hypertopic.org/entity/7702903c0793a63583cb09aa0cf348d97453fe4f"/>
<node LINK="http://steatite.hypertopic.org/entity/0a46ad7785ba6a391b709c6bc556a6b77e64a48d"/>
<node LINK="http://steatite.hypertopic.org/entity/8d20fcdfaf9f6ec2b6a72776157f23e761e48d1e"/>
<node LINK="http://steatite.hypertopic.org/entity/46dd68ec939ef71fa3599a2b26a3c4fe3a8c2ce8"/>
</node>
<node ID="topic_6527" TEXT="Amphores à étriers" FOLDED="true">
<node LINK="http://steatite.hypertopic.org/entity/31c0a98126d087507f64485e384bba6ddd9cf59c"/>
<node LINK="http://steatite.hypertopic.org/entity/8d1da7c38350b047f9f4d6d8cbc1bb581c0d0fc8"/>
<node LINK="http://steatite.hypertopic.org/entity/1316429dd580e2054c4ef4ea68e169dbb78e363e"/>
<node LINK="http://steatite.hypertopic.org/entity/d0cd1162f8e712198e0b42f94bdecddd15563012"/>
<node LINK="http://steatite.hypertopic.org/entity/70c745e3663ed969c865b305166171677e7bdb01"/>
<node LINK="http://steatite.hypertopic.org/entity/7b43001c42be09f12cb26aa520dccde8bf77306b"/>
<node LINK="http://steatite.hypertopic.org/entity/35a65ec01f0882d8f6e4767a5da8428beb8e5036"/>
<node LINK="http://steatite.hypertopic.org/entity/4cc63ec983b90e6f9fc842ba6e50dc18084f31e9"/>
<node LINK="http://steatite.hypertopic.org/entity/03bf0abd5b1f949c8f43d3a8ffee772b4f0bd00f"/>
<node LINK="http://steatite.hypertopic.org/entity/00bcf6ec9d4729fda9ac5aef64d75ae84d689428"/>
<node LINK="http://steatite.hypertopic.org/entity/189017062cb3e9b1af449302b72f3c47febce4bf"/>
<node LINK="http://steatite.hypertopic.org/entity/eb9dddce8bbc11f0a44a78e36559c694f25efaec"/>
<node LINK="http://steatite.hypertopic.org/entity/194b48bd78a73166d2717e126cb85d6e15e28334"/>
<node LINK="http://steatite.hypertopic.org/entity/97e2136162d7ac573fbc9f306eaae85dc1c96477"/>
<node LINK="http://steatite.hypertopic.org/entity/6a8cb6c325b36e7670686c85d4d198b3c65c98ec"/>
<node LINK="http://steatite.hypertopic.org/entity/95dd9d56775f9cdf8721d2c2083b4434c91cae8d"/>
<node LINK="http://steatite.hypertopic.org/entity/adf05e4263a32b4241fdc342772d3fba09601a8a"/>
<node LINK="http://steatite.hypertopic.org/entity/cc50a8397eb0a08eb45f3e3fbd829f8091e3470e"/>
<node LINK="http://steatite.hypertopic.org/entity/268095fd794eac6dd2c4ea44d0f765e672f357d6"/>
<node LINK="http://steatite.hypertopic.org/entity/989a58689fe44d2e81af8abc3023477386d96a10"/>
<node LINK="http://steatite.hypertopic.org/entity/6d1966646b0f7ff83a1a0d0fb215a6be9d4e3175"/>
<node LINK="http://steatite.hypertopic.org/entity/e003281e700e0d0275a33d32f75d09450cf3c315"/>
<node LINK="http://steatite.hypertopic.org/entity/a4e86bcf676ab644af8d6f80bc4d0eb767b93a2b"/>
<node LINK="http://steatite.hypertopic.org/entity/67bb3b4b4352b1e52e94fb7ae4ad5cf0fd1ff1e0"/>
<node LINK="http://steatite.hypertopic.org/entity/8d68a0ba65ad53bdf017f36b9cde158cad5cc6ef"/>
</node>
<node ID="topic_6528" TEXT="Lécythes" FOLDED="true">
<node LINK="http://steatite.hypertopic.org/entity/c78a310a6413a5e7ed047f7c6e37ae592dc5ee6b"/>
<node LINK="http://steatite.hypertopic.org/entity/a1235480e1f7ee6ea162e0bd82b7662c61d34938"/>
<node LINK="http://steatite.hypertopic.org/entity/ed646e517a1da630f850dd68537633f905852cca"/>
<node LINK="http://steatite.hypertopic.org/entity/adf78a21ad8a62b44b27cddffac4ba98f03f9644"/>
<node LINK="http://steatite.hypertopic.org/entity/f3b93668b994c6a35e0b722a83a865d415b54691"/>
<node LINK="http://steatite.hypertopic.org/entity/662c65683157513082f12f69bf6a18a6873f0980"/>
<node LINK="http://steatite.hypertopic.org/entity/5e4c155a199856144d3ce21e78e03872f240df36"/>
</node>
<node ID="topic_6525" TEXT="Amphorisques" FOLDED="true">
<node LINK="http://steatite.hypertopic.org/entity/8672e567497c1a00e3266be9baf6b3d60d22dac3"/>
<node LINK="http://steatite.hypertopic.org/entity/6e8689f6dc7f6be0029cf80a03312e750488947d"/>
<node LINK="http://steatite.hypertopic.org/entity/3959c1c26e403962a91333933cba6082218877d9"/>
<node LINK="http://steatite.hypertopic.org/entity/bfb3286d5817a5e1b3905adeab15f5b739187891"/>
<node LINK="http://steatite.hypertopic.org/entity/65c4148218d39b126ee6530a20d6e0a5aeef9675"/>
<node LINK="http://steatite.hypertopic.org/entity/afc69430563e7f550789308742e08784de9294ba"/>
<node LINK="http://steatite.hypertopic.org/entity/942e22c366351b7981af56ddf70f08a5ecaeca08"/>
<node LINK="http://steatite.hypertopic.org/entity/9184269bd2fa923b679dd3ee9bc0cc72ca1810c6"/>
<node LINK="http://steatite.hypertopic.org/entity/10a69f97ad23eaec87e510db3fb2fb7a4846c653"/>
<node LINK="http://steatite.hypertopic.org/entity/6ada6660703777e26e3a0d75a4406729e578097c"/>
<node LINK="http://steatite.hypertopic.org/entity/4fed192610af24b625514269f1b2034d59d796a9"/>
<node LINK="http://steatite.hypertopic.org/entity/a512bce722c8b6f9103d08a1bcd1b4fdcc0fbd77"/>
<node LINK="http://steatite.hypertopic.org/entity/654986a1c79c7b0d3abd514eb3384592c99b685a"/>
<node LINK="http://steatite.hypertopic.org/entity/03a1549d62586619170337b403f4d3376ef9df3f"/>
<node LINK="http://steatite.hypertopic.org/entity/90cbda1c05b0c469ef32876bbd60a4b9081bede5"/>
<node LINK="http://steatite.hypertopic.org/entity/924acab9a935262f22ab3cf671f151aff0f8a011"/>
<node LINK="http://steatite.hypertopic.org/entity/15c94a091a3d3022b7be29eabf476c5b4dcf5399"/>
</node>
<node ID="topic_6524" TEXT="Cruches" FOLDED="true">
<node LINK="http://steatite.hypertopic.org/entity/a5a8d3f576f3cbfdd2a9361eb1afc806fb3e7f33"/>
<node LINK="http://steatite.hypertopic.org/entity/14811a3cb2325755834ca5bb1e7f54150541178f"/>
<node LINK="http://steatite.hypertopic.org/entity/b9ac91ef408f0ae0fcf4c813b3236ced4685a620"/>
<node LINK="http://steatite.hypertopic.org/entity/12415421a21d111195d1907a41b2c348a39f29d0"/>
</node>
</node>
<node ID="topic_6529" TEXT="Submycénien" FOLDED="true">
<node LINK="http://steatite.hypertopic.org/entity/c7444166ef62f09411eccebffa08b52992bb6dd1"/>
<node LINK="http://steatite.hypertopic.org/entity/6e8689f6dc7f6be0029cf80a03312e750488947d"/>
<node LINK="http://steatite.hypertopic.org/entity/31c0a98126d087507f64485e384bba6ddd9cf59c"/>
<node LINK="http://steatite.hypertopic.org/entity/5aba9e77f4f9f369b5ca76d51c15d4d3a1ac88f1"/>
<node LINK="http://steatite.hypertopic.org/entity/3959c1c26e403962a91333933cba6082218877d9"/>
<node LINK="http://steatite.hypertopic.org/entity/65c4148218d39b126ee6530a20d6e0a5aeef9675"/>
<node LINK="http://steatite.hypertopic.org/entity/8d1da7c38350b047f9f4d6d8cbc1bb581c0d0fc8"/>
<node LINK="http://steatite.hypertopic.org/entity/8d20fcdfaf9f6ec2b6a72776157f23e761e48d1e"/>
<node LINK="http://steatite.hypertopic.org/entity/afc69430563e7f550789308742e08784de9294ba"/>
<node LINK="http://steatite.hypertopic.org/entity/942e22c366351b7981af56ddf70f08a5ecaeca08"/>
<node LINK="http://steatite.hypertopic.org/entity/662c65683157513082f12f69bf6a18a6873f0980"/>
<node LINK="http://steatite.hypertopic.org/entity/9184269bd2fa923b679dd3ee9bc0cc72ca1810c6"/>
<node LINK="http://steatite.hypertopic.org/entity/a5a8d3f576f3cbfdd2a9361eb1afc806fb3e7f33"/>
<node LINK="http://steatite.hypertopic.org/entity/7b43001c42be09f12cb26aa520dccde8bf77306b"/>
<node LINK="http://steatite.hypertopic.org/entity/7702903c0793a63583cb09aa0cf348d97453fe4f"/>
<node LINK="http://steatite.hypertopic.org/entity/654986a1c79c7b0d3abd514eb3384592c99b685a"/>
<node LINK="http://steatite.hypertopic.org/entity/12415421a21d111195d1907a41b2c348a39f29d0"/>
<node LINK="http://steatite.hypertopic.org/entity/5e4c155a199856144d3ce21e78e03872f240df36"/>
<node LINK="http://steatite.hypertopic.org/entity/194b48bd78a73166d2717e126cb85d6e15e28334"/>
<node LINK="http://steatite.hypertopic.org/entity/8672e567497c1a00e3266be9baf6b3d60d22dac3"/>
<node LINK="http://steatite.hypertopic.org/entity/97e2136162d7ac573fbc9f306eaae85dc1c96477"/>
<node LINK="http://steatite.hypertopic.org/entity/6a8cb6c325b36e7670686c85d4d198b3c65c98ec"/>
<node LINK="http://steatite.hypertopic.org/entity/bfb3286d5817a5e1b3905adeab15f5b739187891"/>
<node LINK="http://steatite.hypertopic.org/entity/95dd9d56775f9cdf8721d2c2083b4434c91cae8d"/>
<node LINK="http://steatite.hypertopic.org/entity/f3b93668b994c6a35e0b722a83a865d415b54691"/>
<node LINK="http://steatite.hypertopic.org/entity/989a58689fe44d2e81af8abc3023477386d96a10"/>
<node LINK="http://steatite.hypertopic.org/entity/4fed192610af24b625514269f1b2034d59d796a9"/>
<node LINK="http://steatite.hypertopic.org/entity/a512bce722c8b6f9103d08a1bcd1b4fdcc0fbd77"/>
<node LINK="http://steatite.hypertopic.org/entity/adf78a21ad8a62b44b27cddffac4ba98f03f9644"/>
<node LINK="http://steatite.hypertopic.org/entity/67bb3b4b4352b1e52e94fb7ae4ad5cf0fd1ff1e0"/>
</node>
<node ID="topic_6522" TEXT="HRIIIC récent" FOLDED="true">
<node LINK="http://steatite.hypertopic.org/entity/a1235480e1f7ee6ea162e0bd82b7662c61d34938"/>
<node LINK="http://steatite.hypertopic.org/entity/ed646e517a1da630f850dd68537633f905852cca"/>
<node LINK="http://steatite.hypertopic.org/entity/d0cd1162f8e712198e0b42f94bdecddd15563012"/>
<node LINK="http://steatite.hypertopic.org/entity/1316429dd580e2054c4ef4ea68e169dbb78e363e"/>
<node LINK="http://steatite.hypertopic.org/entity/14811a3cb2325755834ca5bb1e7f54150541178f"/>
<node LINK="http://steatite.hypertopic.org/entity/70c745e3663ed969c865b305166171677e7bdb01"/>
<node LINK="http://steatite.hypertopic.org/entity/6ada6660703777e26e3a0d75a4406729e578097c"/>
<node LINK="http://steatite.hypertopic.org/entity/10a69f97ad23eaec87e510db3fb2fb7a4846c653"/>
<node LINK="http://steatite.hypertopic.org/entity/35a65ec01f0882d8f6e4767a5da8428beb8e5036"/>
<node LINK="http://steatite.hypertopic.org/entity/03bf0abd5b1f949c8f43d3a8ffee772b4f0bd00f"/>
<node LINK="http://steatite.hypertopic.org/entity/00bcf6ec9d4729fda9ac5aef64d75ae84d689428"/>
<node LINK="http://steatite.hypertopic.org/entity/0a46ad7785ba6a391b709c6bc556a6b77e64a48d"/>
<node LINK="http://steatite.hypertopic.org/entity/189017062cb3e9b1af449302b72f3c47febce4bf"/>
<node LINK="http://steatite.hypertopic.org/entity/90cbda1c05b0c469ef32876bbd60a4b9081bede5"/>
<node LINK="http://steatite.hypertopic.org/entity/15c94a091a3d3022b7be29eabf476c5b4dcf5399"/>
<node LINK="http://steatite.hypertopic.org/entity/eb9dddce8bbc11f0a44a78e36559c694f25efaec"/>
<node LINK="http://steatite.hypertopic.org/entity/884e45f2300f2b3b59c6cf117e1f358aa6548d92"/>
<node LINK="http://steatite.hypertopic.org/entity/5fedf5dadacc522830df46b770741f89966856ac"/>
<node LINK="http://steatite.hypertopic.org/entity/c78a310a6413a5e7ed047f7c6e37ae592dc5ee6b"/>
<node LINK="http://steatite.hypertopic.org/entity/adf05e4263a32b4241fdc342772d3fba09601a8a"/>
<node LINK="http://steatite.hypertopic.org/entity/cc50a8397eb0a08eb45f3e3fbd829f8091e3470e"/>
<node LINK="http://steatite.hypertopic.org/entity/b9ac91ef408f0ae0fcf4c813b3236ced4685a620"/>
<node LINK="http://steatite.hypertopic.org/entity/6d1966646b0f7ff83a1a0d0fb215a6be9d4e3175"/>
<node LINK="http://steatite.hypertopic.org/entity/a4e86bcf676ab644af8d6f80bc4d0eb767b93a2b"/>
<node LINK="http://steatite.hypertopic.org/entity/03a1549d62586619170337b403f4d3376ef9df3f"/>
<node LINK="http://steatite.hypertopic.org/entity/924acab9a935262f22ab3cf671f151aff0f8a011"/>
<node LINK="http://steatite.hypertopic.org/entity/b1581a3cc7146e52785c1b83ccf31c89ebe489cb"/>
<node LINK="http://steatite.hypertopic.org/entity/46dd68ec939ef71fa3599a2b26a3c4fe3a8c2ce8"/>
<node LINK="http://steatite.hypertopic.org/entity/8d68a0ba65ad53bdf017f36b9cde158cad5cc6ef"/>
</node>
</node>
</map>
Errors:
Some corpora are very long. Vitraux - Bénel
for example – with 1.3 Mb and 7k lines – takes approximately 1.2s to load.
Hypertopic views use a ternary model such as this:
{"rows":[
{"key":["C"], "value":{"name":"N1"}},
{"key":["C"], "value":{"user":"U1"}},
{"key":["C"], "value":{"user":"U2"}},
{"key":["C","I"], "value":{"name":"N2","resource":"http://acme/bar"}},
{"key":["C","I"], "value":{"A":"V"}},
{"key":["C","I"], "value":{"topic":{"viewpoint":"V1","id":"T1"}}},
{"key":["C","I", "H"], "value":{"coordinates":[123,240], "topic":{"viewpoint":"V2", "id":"T2"}}}
]}
However other triples serialization are also equivalent such as:
{"rows":[
{"key":["C"], "value":{"name":"N1", "user":["U1", "U2"]}},
{"key":["C","I"], "value":{"name":"N2","resource":"http://acme/bar", "A":"V"}},
{"key":["C","I"], "value":{"topic":{"viewpoint":"V1","id":"T1"}}},
{"key":["C","I", "H"], "value":{"coordinates":[123,240], "topic":{"viewpoint":"V2", "id":"T2"}}}
]}
Or even:
{"rows":[
{"key":["C"], "value":{"name":"N1", "user":["U1", "U2"]}},
{"key":["C","I"], "value":{"name":"N2","resource":"http://acme/bar", "A":"V", "topic":{"viewpoint":"V1","id":"T1"}}},
{"key":["C","I", "H"], "value":{"coordinates":[123,240], "topic":{"viewpoint":"V2", "id":"T2"}}}
]}
Such a compact syntax could reduce payload by 1/3 or even 1/2.
Possible negative impacts:
As a widget, it could be used in the home page of Agorae.
It seems to be feasible with a single pass CouchDB list.
The view may have been broken when migrating CouchDB from 1.6 to 2.3 (because of a breaking change in the javascript engine?).
Might be fixed by changing if(<NAME>)
by if(typeof <NAME>=='string')
.
https://github.com/Hypertopic/Argos/blob/v4/app/views/stats/map.js
Never used nor tested so far.
It should be either documented (esp. if #3 is implemented) or removed (to simplify code base).
Formerly used attributes and values (for a given attribute) should be proposed to the user. But the user can use new ones.
See Cassandre for an example of such a feature.
As a widget, it could be used in both Agorae and LaSuli.
To improve performance.
Require Porphyry v6 to be discarded and maybe LaSuli v2.
Related items existed in a prior version of Porphyry and Agorae (for the iSemantec project) whereas version 1 of the Hypertopic Protocol didn't specify it. The implementation was finally dropped when version 2 came out saying:
Item-Item will remain unspecified until we have more real cases for it.
Source: Hypertopic Protocol Specification v2
The need for this feature emerges again among Porphyry contributors (see Hypertopic/Porphyry#188):
Until it is specified in a future version of the protocol, this feature will be considered as "experimental" (formats and behaviours could change in the future).
The link will be stored in the item object which has the following format:
{
"item_name": "N0",
"item_corpus": "C0",
"resource": "http://acme/bar",
"A": "V",
"topics": {
"T1": {"viewpoint":"V1"}
},
"highlights": {
"H": {
"coordinates": [X,Y],
"viewpoint": "V2",
"topic": "T2"
}
}
}
In order to be coherent with this format, it will be stored as:
"items":{
"I3": {"corpus": "C3"}
},
where I3
is the identifier and C3
the corpus of the related item.
For now, the relation is unspecified (or équivalent to related
), but it could be typed in an improved version.
In the item and corpus view. It will be added to the existing format:
{"rows":[
{"key":["C0","I0"], "value":{"name":"N2","resource":"http://acme/bar"}},
{"key":["C0","I0"], "value":{"A":"V"}},
{"key":["C0","I0"], "value":{"topic":{"viewpoint":"V1","id":"T1"}}},
{"key":["C0","I0","H"], "value":{"coordinates":[X,Y], "topic":{"viewpoint":"V2", "id":"T2"}}}
]}
For coherence with topic
, it could be:
{"key":["C0","I0"], "value":{"item":{"corpus":"C3","id":"I3"}}},
Please note that being bidirectional the link will also be displayed as:
{"key":["C3","I3"], "value":{"item":{"corpus":"C0","id":"I0"}}},
As a widget, it could be used in Agorae, but also in Steatite, Moodle, in a wiki, in a forum, etc.
Some viewpoint payload are long. Histoire des religions
for example – with 226 Kb and 1k lines – takes approximately 440ms to load.
Hypertopic views use a ternary model such as this:
{"rows":[
{"key":["C"], "value":{"name":"N1"}},
{"key":["C"], "value":{"user":"U1"}},
{"key":["C"], "value":{"user":"U2"}},
{"key":["C","I"], "value":{"name":"N1"},
{"key":["C","I"], "value":{"broader":{"id":"B1","name":"N2"}},
{"key":["C","I"], "value":{"narrower":{"id":"W1","name":"N3"}},
{"key":["C","I"], "value":{"narrower":{"id":"B2","name":"N4"}}
]}
The objective is to reduce the number of lines returned and consequently the size of the file uploaded by the client.
{"rows":[
{"key":["C"], "value":{"name":"N1", "user":["U1", "U2"]}},
{"key":["C","I"], "value":{"name":"N1", "broader":[{"id":"B1","name":"N2"}, {"id":"B2","name":"N4"}], "narrower":[{"id":"W1","name":"N3"}] }}},
]}
A compact syntax could reduce payload by 1/4.
Note that given the algorithm, some groupings do not pose any problem (all users
at once, or the name
and broader(s)
of a topic
at once). On the other hand, for upper
and narrower
it would be counterproductive not to take advantage of MapReduce.
A security fix for CouchDB (1.6.0 -> 1.6.1) broke the continuous integration of Argos.
The reason for that is that using HTTP for settings is now disabled.
In Travis docs, I found no other way to change the settings of CouchDB.
A solution could be to use a dockerized version of CouchDB instead of the default one.
CSV is the only format for attributes that is widely available to users in "office" software. For example, it would be very useful for a PhD student in humanities to be able to export his/her data into a user database (FileMaker/Bento, Access), a spreadsheet or a word processor.
Related work: https://github.com/Mango-information-systems/csv2couchdb
When 100 students used Argos with LaSuli, they created far more viewpoints that what they needed.
One of them even created 250 viewpoints himself!
An easy way to purge most of those viewpoints would be:
To improve performance.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.