periodo / periodo-client Goto Github PK
View Code? Open in Web Editor NEWClient to browse and edit PeriodO data
Home Page: https://client.perio.do
License: Other
Client to browse and edit PeriodO data
Home Page: https://client.perio.do
License: Other
Shouldn't the call to our server result in my browser downloading a local copy of all the data, which it would then display when I navigate to test.perio.do, until I perform a new sync? Currently it always begins with a blank screen, and I have to sync each time. If we're going to allow local/offline work, presumably the synced data need to persist locally until the next call.
I started to add a period to a local collection I'd made for the CHGIS periodization, but then decided I wanted to cancel it out to fix a mistake in the previous period I'd added. Clicking the cancel button did not cause any change to the state of the page. When I hit the back button on the browser, thinking I could back out, the client reverted to the database selection page -- and when I tried to access the local idb, nothing appeared but the following error message (the database seems to have disappeared, even on reload):
Time: 6/14/2015, 12:11:47 AMVersion: 0.6.12Page: #p/adam local firefox/=========getEarliestYear@https://test.perio.do/dist/periodo-0.6.12.min.js:68:27247[152]</</maxFactory/entry<@https://test.perio.do/dist/periodo-0.6.12.min.js:23:3488[152]</</mapFactory/mappedSequence.__iterateUncached/<@https://test.perio.do/dist/periodo-0.6.12.min.js:22:25461[152]</</ToKeyedSequence.prototype.__iterate/<@https://test.perio.do/dist/periodo-0.6.12.min.js:24:440[152]</</src_Map__Map.prototype.__iterate/<@https://test.perio.do/dist/periodo-0.6.12.min.js:24:5926[152]</</HashCollisionNode.prototype.iterate@https://test.perio.do/dist/periodo-0.6.12.min.js:24:11706[152]</</src_Map__Map.prototype.__iterate@https://test.perio.do/dist/periodo-0.6.12.min.js:24:5871[152]</</ToKeyedSequence.prototype.__iterate@https://test.perio.do/dist/periodo-0.6.12.min.js:24:384[152]</</mapFactory/mappedSequence.__iterateUncached@https://test.perio.do/dist/periodo-0.6.12.min.js:22:25416seqIterate@https://test.perio.do/dist/periodo-0.6.12.min.js:22:19705[152]</</Seq.prototype.__iterate@https://test.perio.do/dist/periodo-0.6.12.min.js:23:26769[152]</</<.reduce@https://test.perio.do/dist/periodo-0.6.12.min.js:25:2108maxFactory@https://test.perio.do/dist/periodo-0.6.12.min.js:23:3444[152]</</<.minBy@https://test.perio.do/dist/periodo-0.6.12.min.js:25:5043minYear@https://test.perio.do/dist/periodo-0.6.12.min.js:68:28392describe@https://test.perio.do/dist/periodo-0.6.12.min.js:68:22272[152]</</mapFactory/mappedSequence.__iterateUncached/<@https://test.perio.do/dist/periodo-0.6.12.min.js:22:25461[152]</</ToIndexedSequence.prototype.__iterate/<@https://test.perio.do/dist/periodo-0.6.12.min.js:24:1224[152]</</src_Map__Map.prototype.__iterate/<@https://test.perio.do/dist/periodo-0.6.12.min.js:24:5926[152]</</ValueNode.prototype.iterate@https://test.perio.do/dist/periodo-0.6.12.min.js:24:12067[152]</</HashArrayMapNode.prototype.iterate@https://test.perio.do/dist/periodo-0.6.12.min.js:24:11970[152]</</HashArrayMapNode.prototype.iterate@https://test.perio.do/dist/periodo-0.6.12.min.js:24:11970[152]</</src_Map__Map.prototype.__iterate@https://test.perio.do/dist/periodo-0.6.12.min.js:24:5871[152]</</ToIndexedSequence.prototype.__iterate@https://test.perio.do/dist/periodo-0.6.12.min.js:24:1184[152]</</mapFactory/mappedSequence.__iterateUncached@https://test.perio.do/dist/periodo-0.6.12.min.js:22:25416seqIterate@https://test.perio.do/dist/periodo-0.6.12.min.js:22:19705[152]</</IndexedSeq.prototype.__iterate@https://test.perio.do/dist/periodo-0.6.12.min.js:23:27249[152]</</mapFactory/mappedSequence.__iterateUncached@https://test.perio.do/dist/periodo-0.6.12.min.js:22:25416seqIterate@https://test.perio.do/dist/periodo-0.6.12.min.js:22:19705[152]</</IndexedSeq.prototype.__iterate@https://test.perio.do/dist/periodo-0.6.12.min.js:23:27249[152]</</<.toArray@https://test.perio.do/dist/periodo-0.6.12.min.js:24:31118[152]</</<.toJS@https://test.perio.do/dist/periodo-0.6.12.min.js:24:31261[244]</module.exports<.render@https://test.perio.do/dist/periodo-0.6.12.min.js:70:11504[244]</module.exports<.initialize@https://test.perio.do/dist/periodo-0.6.12.min.js:70:11340[91]</</</Backbone.View@https://test.perio.do/dist/periodo-0.6.12.min.js:6:6681[91]</</</extend/child<@https://test.perio.do/dist/periodo-0.6.12.min.js:6:16593[193]</</ApplicationRouter<.changeView@https://test.perio.do/dist/periodo-0.6.12.min.js:65:25045[193]</</ApplicationRouter<.backendHome/<@https://test.perio.do/dist/periodo-0.6.12.min.js:65:26569run@https://test.perio.do/dist/periodo-0.6.12.min.js:4:18686[59]</notify/<@https://test.perio.do/dist/periodo-0.6.12.min.js:4:18930[19]</module.exports@https://test.perio.do/dist/periodo-0.6.12.min.js:3:21215@https://test.perio.do/dist/periodo-0.6.12.min.js:3:31460run@https://test.perio.do/dist/periodo-0.6.12.min.js:3:30799listner@https://test.perio.do/dist/periodo-0.6.12.min.js:3:30829
Can't delete a local dataset.
To add to the list of date formats we will encounter:
"tenth century BC" (written out rather than numeral like "10th c.", relatively common)
"1400-1350/1300 BC" (which seems to be equivalent to saying "some time in the second half of the 14th century)
Is this going to reappear as a visualization option in this version of the client? Data model aside, it would help to surface some of the information we're hiding (e.g. if the language/script identifiers from the spreadsheet made it in or not). Also, it's good for letting people have a quick look at how the period definitions are structured in practice.
Make it possible to sort period definitions in a period collection by a) start date of the period (earliest to latest and vice versa) and b) alphabetical order. Right now they appear in neither order, which makes them hard to look through for the user.
Via @atomrab: It would be helpful to have a list of the other periods in a given periodization/period collection on the page for the entry of a new period. This would help the user remember which periods from a large collection had already been entered, avoiding duplicates. It would also help to catch errors or typos in dates, since it would be more obvious that there was a gap or overlap between the existing period spans and the one being entered.
Objects are not being freed as a user navigates through the interface. This might have something to do with how we're using backbone-relational.
Not urgent (since things are working), but I think we should get away from that library in the future. It does much more than we need and doesn't exactly fit our use case. We might look into using AmpersandJS models, which allows parent/child relationships.
Source title, No. of definitions, and Time span are visible, but add Author to this display: http://perio.do/periodo-client/#sync/
Locator property should be nested, like:
"source": {
"locator": "page 367",
"partOf": "http://www.worldcat.org/oclc/47825690"
}
Currently, the form just serializes it as "locator": "page 367"
.
via @atomrab: I wanted to move our discussions into the issue tracker, since I've found that as productive, if not more so, in other projects than long email threads.
I don't know if one can add categories for labels for issues, but I'd like to have something to set apart actual bugs, enhancements, and questions from larger theoretical issues. Does anyone have a suggestion for a tag we can put in a title for bigger-picture issues like this one? Or is this just really an enhancement?
Now on to the issue.
I wanted to submit this issue to check in with you and Ryan about the display of the periods entered in the client you're building. One of the principles I assume we want to maintain is the preservation of the original terms in which a given period was described (so even if we're representing it as ISO dates, we keep the original statement that it was "early 5th century BCE-25 CE" etc.). Right now it looks like BCE, for example, gets translated to BC, and ISO-style dates (e.g. -700) aren't recognized by the parser.
Obviously we'll need to normalize the dates on the back end and in the representation, but I'd find it helpful if the edit/browse interface retained the original label for display, either alone or in combination with the normalized ISO dates. I think it makes most sense to be explicit about any transformations that are happening between the temporal coordinates as expressed by the source and the information we're collecting.
Right now I think it's impossible not to mask the spatial transformations, though -- so when someone says that a period applies to "Mesopotamia", we're stuck making some deductions about the modern nations to which that applies. It will be interesting to see if we can get anywhere with ancient gazetteers or data sources -- Pleiades or maps of the extent of the Roman Empire, for example. But here too I'd be in favor of being as explicit about deductions as possible.
Adam in #23:
For spatial coverage, I'll take anything that can provide URIs and polygons for regional administrative divisions (e.g. "Sicily", "Toscana", "Texas") and for continental aggregations (e.g. "Europe", "North America", "Africa"). Geonames will at least resolve eastern, southern, northern Europe etc (e.g. http://www.geonames.org/7729883/northern-europe.html), and handles regions (e.g. http://www.geonames.org/2523119/sicilia.html). Does DBpedia do this too?
I don't know when we plan to make these part of our records (when we have a more permanent server home?), but it's going to be important quite soon to allow users to see and copy these (e.g. with the ARIADNE use case).
From the "no good deed goes unpunished" file-
Since we switched the site to be served over HTTPS, we can no long make CORS requests to worldcat.org because it is only served over HTTP.
I tried China, People's Republic of China, Republic of China, Zhongguo -- nothing. Could this really be missing from DBpedia? If so, perhaps a good reason to allow spatial lookup against a gazetteer of the user's choice.
In Chrome, checking the "Select all" radio box on the Sync page does not select any of the period collections in the list. The "Select all" radio box on the patch submission page does work, however.
I. periodo-client backend with synced dataset
2. click on Hodos 2006 collection
3. click "edit period collection"
4. URL changes to https://test.perio.do/#periodCollections/p0tns5v/edit/, but action is just to switch "current backend" at top of page to "web" (edit window does not come up)
When a language/script is entered, the entry is updated, but the window will not close when the "ok" button is clicked (in Firefox 38.0.5).
I suspect this doesn't matter right now, but the current period-definition-specific permalink resolves to the collection as a whole, and then for some reason incapacitates the browser back button in Chrome (it just sends you back to the same page again). Eventually we probably want to support resolution down to the period record, since human users may want to follow the link from a database.
Here's a concrete example. We're trying to add a period from Twist 2001, which exists as a collection in the server dataset. The period, diagrammed on page 17, is called "Copper (Chalcolithic Age)"; it lasts from 3200 BC to 2500 BC in "Europe", and is a sub-period of "the Metal Ages".
Currently we can represent the label and the dates. We can construct Europe from all of its component countries, but it would be much more useful if we could point to a spatial gazetteer that will work with larger and smaller concepts -- currently we can't do "Europe" or "Sicily", only discrete nations.
We also need to include information about language and script (lat, eng); original label (Copper); alternate label (Chalcolithic Age); English label (here probably Copper Age is best, inferring that's what the author meant by "Copper (Chalcolithic Age)") and source locator (page 17). This source also has a lot of broader/narrower relationships, which we probably want to capture at this point.
How much of this can we push to the editorial notes field, to return to later, before we create a situation where we end up doing work twice by hand?
Right now, when you select a particular period collection/source, you can't get back to the list of collections without hitting the browser back button, which takes you to a blank page where you have to sync again with the server.
Before spending too much time on any specific visualizations, we should come up with a melange of rough demonstrations
Can we query VIAF for an author ID in the source field even when the user doesn't have a WorldCat etc. citation? For example, adding the CHGIS material, I put in "Merrick Lex Berman" -- would be nice to attach him to the VIAF entry. If so, we will have to specify how the name should be entered (last name, first name or first name, last name, etc.).
Currently browsing to http://n2t.net/ark:/99152/p06xc6m redirects to https://test.perio.do/#6xc6m, which should load that period collection, but it doesn't. Instead https://test.perio.do/#periodCollections/p06xc6m/ shows the period collection.
Likewise http://n2t.net/ark:/99152/p06xc6mvjx2 redirects to https://test.perio.do/#6xc6mvjx2, which currently does nothing but should also show the period collection view with that period definition highlighted and scrolled to.
Accept text in the text block that is not a URL or a DOI, i.e. data dumps (in XML) not published elsewhere : "Add periodization," http://perio.do/periodo-client/#periodizations/add/
@atomrab in #54 suggested that filtering could be done by spatial coverage entries (not just spatial coverage descriptions, as is currently implemented).
This may be useful but confusing/misleading because of the relationship between spatial coverage description (which is in the source) and spatial coverage (which is an estimation of that description using linked data entities).
Filtering by spatial coverage will ideally be done in a map interface- this was the primary purpose of linking descriptions with LD entities in the first place. This will be quite involved and not possible to implement this summer.
I think we should hold off on filtering by constituent parts of spatial coverage descriptions ("spatial coverages"), and stick with filtering only by descriptions. The latter will become much more useful once periodo/periodo-data#24 is resolved.
What's determining the year range of the filter at the upper right? I love this as a strategy, but using the web backend, it only shows -50000 to 2100 for the dataset as a whole. If this is just for the first page, it doesn't adjust with subsequent pages. If this is for the whole set, the earliest date is too late (we go back to 1.5mya already, and soon will go back a lot further with geological stratigraphy).
I think users are likely to want complete bibliographic references for the sources we're attributing collections to. Right now, these don't appear at all in the web interface, and they only appear in a local idb when you select the edit button. Either providing a full reference in the GUI by default, or allowing expansion (as we now do with periods, which is working really well), is a better option than the very abbreviated author-title-date that we offer now.
If a mistake is made in the creation of a period collection, there's currently no way to go back and fix it or add to it. The attributes of a period collection need to have the same editorial control for authorized users as the period definitions within it.
This is extremely minor, but when I load the client in Safari and turn on the developer tools I get this error in the console:
[Error] Failed to load resource: the server responded with a status of 404 (Not Found) (bootstrap.css.map, line 0)
I guess this is because Safari automatically looks for CSS source maps? Any reason not to include one?
The RDF/Turtle display button currently does not work in either the local or the web backend in Chrome.
When browsing the Fasti periodization, there are two date types: BC dates from a semi-formal Ukrainian periodization, and BP (2000) dates from the main periodization in use on the site. The BP dates show up as just the numbers from the label, but this doesn't make any sense to the user without an explanation that the dates are in BP counting back from 2000 (especially confusing because of the Ukrainian BC dates). We need a way to display either the date type, so the user knows what he or she is looking at, or the normalized ISO8601 proleptic Gregorian dates we show in the JSON, or both -- but we're not showing enough to make sense right now.
By label, start date, end date
Currently the client lists the periodizations by title, but this is both awkward (some of the titles for the web-based versions are not very informative) and not the way specialists are likely to find information (non-specialists will just want a free-text search). It would be one thing if titles provided information about spatial and cultural coverage, but they don't always (e.g. "Periods used on the database").
Academics are used to looking for the authority name and the date (eg Harvard citations), and I think it makes sense to list the periodizations by that header, rather than title. So instead of "Aegean Bronze Age", we might consider "Shelmerdine 2008". There's already a listed date range; if we're worried that it will then be unclear what places are described by this periodization,could we add the spatial coverage for the work as a whole?
Let's put anything that comes up when trying to submit a patch to the server here.
Currently there is no way to see or edit the locator
or sameAs
properties. The latter is necessary to start entering the BM data.
The sign-in link is not currently working on either Firefox or Chrome.
Need a way to add derivedFrom relations between period definitions. Need to resolve periodo/periodo-data#15 first.
I'm not sure if this is a function of being unable to log in (I cleared my cache to see if other issues would resolve; I had previously been logged in, and able to see the IDB on Firefox but not on Chrome) or a problem with the interface, but my only options are to either use the view-only web back end or to make a new back-end of my own (which doesn't work when I click Add in either Firefox or Chrome). Is this intentional?
I'm 75% of the way through patch submission and syncing code, but I don't have time to work on them again until Wednesday. Because I didn't have a chance to finish this weekend, some things are going to be wonky in the version I just released (0.4.0).
You should, however, be able to add and edit period collections and periods. Once I have a chance to finish, local changes ("patches") can be sent to the server.
Users are now able to submit patches, but they cannot yet be accepted
Entering Chinese periods where the original label is in Chinese script, it occurred to me that we should a) find a better way to let the user see the English label for non-English items (right now you have to open the edit window); and b) clarify the "alternate label" field, which doesn't distinguish between the primary English translation and any other kind of alternate label. We should make sure that there's a primary English version that can be accessed easily by the user wherever possible -- right now, a non-Chinese-speaking user won't be able to figure out Chinese periods.
It's not clear from the user interface that here we mean "CITATION has a linked data representation in WorldCat etc", rather than "Dataset is represented as linked data". Change wording with reference to citation to avoid confusion?
I'm getting a 502 bad gateway error with ORCID again: first I got a bad gateway when I entered my (correct) login information, and then, when I tried again, I got the ORCID notification that PeriodO wanted to share my information -- but when I clicked "accept", the 502 bad gateway message returned.
The first data entry page/step is "Add period collection" (5 fields). The issue occurs in the second data entry page/step, "Add period" (7 fields). Two of these fields, "Start" and "Stop", currently only accept a raw number for a year. We need to add capacity to recognize a date formatted like this example from the BM dataset: 749 (AH 132). Also BC, BCE, etc.
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.