What I will be doing now is create a Map class that can hold configuration properties. If these properties are filled then that data will be used while generating the map else some default configuration will be used. Maybe I will make a separate object for default configuration of the map?
Then once I am able to generate a map with the map class I will add a query based property to the map which will hold the query to what the map will have. A macro (maybe some other option?) will be made to handle the data gotten from the query. As we are focusing on a Point for now, I will make the macro so that if a Point object is queried, I will get all the properties of that particular point and add it to the map. For now I will only be querying objects on the same page to reduce complexity at an early stage. Is this a good approach for now or am I in the wrong direction? I really think we should have a detailed video conference since that will get us all on the same page and will take minimum time. Best, Fawad On Tue, May 28, 2019 at 8:30 PM Fawad Ali <m.fawaadal...@gmail.com> wrote: > Stéphane, > > I will start off by learning Solr Search Query API and see how I can use > it in this application. > > One major concern is how we will be creating our maps. I introduced the > idea of a map editor but now it seems that we will be using queries to > generate our maps. What I have in mind after this is that the user will > create an object of Map class and then associate a query with it but I > don't know how we will get the relevant data for the map. For example if we > want a point on the map, how would we identify that we need that point. Do > we have all the relevant objects on a single page and then get all of them > from that page to display those features on the map? > > Can you give a reference to an application that is similar in structure to > what we are striving for in this application? I can't help but feel like > this will lead to something of a "Map Service" rather than a "Map > Application". Sorry about all this confusion. > > Maybe we can have a recorded video/audio conference as that will save us a > lot of time discussing these things. WDYT? > > Best, > Fawad > > > On Tue, May 28, 2019 at 7:44 PM Stéphane Laurière <slauri...@xwiki.com> > wrote: > >> Fawad, >> >> Thanks for your feedback. >> >> Regarding the data model: >> >> - Map: we clearly need a Map class :-). As discussed, it will hold the >> map configuration, and possible links to sub-configurations (such as the >> visual theme, to be discussed). Primarily, the map needs data, so it needs >> a field for storing a query that will make it possible to retrieve data. >> You certainly already found the Solr Query API documentation below, I >> suggest you give it a try and read the basic query principles, then we can >> set up dedicated examples together on real data in the next days. This >> brings us to the question of real data. We will quickly need sample data to >> work with, I think, I'm investigating how to download GeoJSON data from >> OpenStreetMap, which itself contains links to Wikidata or Wikipedia, this >> would allow us to grab some content and even images and to have a good >> sample data set to work with. I'll keep you posted about that. >> >> >> https://extensions.xwiki.org/xwiki/bin/view/Extension/Solr%20Search%20Query%20API >> >> In parallel, you could start thinking about the design and implementation >> of the query endpoint that will return GeoJSON. Looking a bit into the code >> of "Main.SolrSearchMacros" could be useful I would say, I'll think about it >> as well. >> >> - Spatial entities : Point, Shape, Path, ...: I agree with you having one >> XClass for each is probably the way to go, but I would suggest we start >> just with "Point" and postpone the decision to a bit later if you agree, >> just to make sure we don't make wrong assumptions and introduce too much >> complexity (probably not, but to be discussed). Even the "icon" property >> might be too early at this stage imho, because in real world scenarios I >> believe it's more important to provide the ability to associate icons to >> facets key/value pairs than to individual items. It may be useful in the >> future, but we'll see, I would say. >> >> - Content: considering using content ids, or XPaths or XWiki DOM (XDOM) >> queries could be quite powerful. We don't want the users to maintain >> manually popup content, while they already have the burden to maintain the >> main content itself. Using content ids / queries would avoid duplicating >> content. This shares some concern with the Page Preview application, see >> links below. I don't have a clear answer yet, we need to discuss a bit >> further. But we could start with the first page paragraph for instance. >> >> >> https://dev.xwiki.org/xwiki/bin/view/Drafts/Page%20Preview%20Application >> https://xwiki.markmail.org/message/zhbaw7m3rsnbm26m?q=preview >> https://github.com/xwiki-contrib/application-page-preview >> >> I'll be off in the next couple of hours but I'll provide more feedback as >> soon as possible. >> >> Cheers >> >> Stéphane >> >> >> Fawad Ali: >> > Hi Stéphane and Ecaterina, >> > >> > Thanks for the update to the design page. It feels much more detailed >> now imo. However it has left me confused with all the details. I was >> focused on a more straightforward approach but we need to be more detailed >> as I see it. >> > >> > I would like to know how I should move forward with what I have already >> done. Considering the kind of structure Stephane suggests for the >> application, we will have to redo it completely because I do not think what >> I did so far is suitable for such requirements. >> > >> > Let me first discuss the data model since that will be the basis of the >> application. >> > We have the main entities as Map, Point, Shape, Path and Content. I >> think it's better if we have an XClass for each of them with properties >> that will highlight the available configurations for the entities. For >> example, for the Point class, we can have properties icon, location, >> content (may be an id from a content class object?). >> > >> > Also, I am not much familiar with Solr or any of the query languages in >> XWiki since I was not going in that direction. I did try to look into Solr >> quite a bit but it would help me a lot if you could provide me an example. >> > >> > And direction on how I move from here on out would also help a lot. >> > >> > Best, >> > Fawad >> > >> > >> > On Tue, May 28, 2019 at 6:14 PM Stéphane Laurière <slauri...@xwiki.com >> <mailto:slauri...@xwiki.com>> wrote: >> > >> > Hi Caty, Fawad, all, >> > >> > >> > [...] >> > >> > > * I've read again the GSOC project description. The main purpose >> of the >> > > application is to allow multiple people to create POIs and other >> shapes on >> > > the Maps. There is a note that the POIs will have additional >> information >> > > about the location. >> > > Some questions: >> > > ** can a POI be displayed in multiple Maps? For example: if we >> someone >> > > creates a 'Centre Pompidou' POI in a page, where adds >> information about the >> > > place, images, etc. Should we be able to display this POI in >> multiple maps >> > > (one that contains museums, while others contain modern >> architecture)? >> > >> > I would say it's important that a point of interest or any other >> entity can be present in multiple maps indeed. A map is defined in >> particular by a query imho – I would suggest a Solr query as argued on the >> design page, what do you think? – which returns a set of elements. Then >> the user can refine this set at will using full-text search, facets or >> spatial search. >> > >> > > ** in any case, the POI storage could be done in objects or in >> individual >> > > pages. We need to think about performance too. Pages will lots >> of objects >> > > can have performance issues, so storing as pages (that will >> contain objects >> > > for POI type) might be better? >> > >> > Ideally that'd be great to support both options I would say. >> > >> > In terms of priority I would go for one object per page to start >> with. Typically, in the encyclopedia use case defined in the design page, >> having one object attached to each target page would be very convenient >> imho: it would ease the maintenance of information, both textual and >> geographical, related to each page. >> > >> > Supporting multiple objects per page could be quite useful as well. >> Imagine for instance that we want to represent the "Battle of the Somme" on >> a map. The content itself may refer to multiple locations (as on the >> Wikipedia article below and its static image map representation), so it >> could be handy to let the user input all these locations (points, areas, >> lines...) as objects attached to the "Battle of the Somme" page itself >> without the need to create individual pages for each location. There is no >> reason to hit a very large number of objects in this scenario though. What >> do you think? >> > >> > https://en.wikipedia.org/wiki/Battle_of_the_Somme >> > >> > > * Maps will also be pages, containing configuration (custom >> backgrounds), >> > > etc. >> > >> > Indeed, a map page will consist of a map configuration imho. We >> need to define what is needed to configure a map, beside the query. The >> visual configuration is important as well and can be possibly complex, and >> other options could arise... >> > >> > Stéphane >> > >> > >> > -- >> > Stéphane Laurière >> > XWiki – https://xwiki.com >> > >> >> >> -- >> Stéphane Laurière >> XWiki – https://xwiki.com >> >>