Hi Yaron, Thank you. I'm not trying to store the ComposedOf data but to query PartOf as you and Sam suggest. For example, I do not even mention ComposedOf in the Form. I mention it in the Template, but perhaps did so incorrectly so that when I pressed "Recreate Data" it added a column? Regardless, I'll continue to experiment and get it working. Thank you for these great tools!
-david On Sun, Sep 5, 2021 at 11:14 PM Yaron Koren <yaro...@gmail.com> wrote: > Hi David, > > You shouldn't be storing inverse relationships (like "ComposedOf") at all > - rather, that information should get directly queried whenever you want to > display it. And the variable to use, when you want to display a page's > name, is {{PAGENAME}} - so, in the template, you could add a query like: > > {{#cargo_query:table=Place|fields=_pageName|where=PartOf = '{{PAGENAME}}'}} > > -Yaron > > On Fri, Sep 3, 2021 at 8:03 PM David Epstein <david...@umich.edu> wrote: > >> Sam and Yaron, >> >> >> I'm trying to implement the inverse of PartOf (ComposedOf) as discussed >> on this list a few days ago (also at end of this email). I'm using Cargo, >> PageSchemas, and PageForms. My understanding is that ComposedOf would not >> be part of the schema, but would be a manual edit to the automatically >> generated template for the *Place* category. Below is the template code >> with the manual edits in color. The first "_pageName" refers to data in >> Cargo tables. The second "_pageName" is the current page being displayed, >> which I don't know how to specify in this context. This code results in no >> error and no text after the "ComposedOf" label. When viewing the place "Sol >> System", the ComposedOf text should include links to Earth and Mars, since >> they are both currently in the Place table as PartOf the Sol System. In >> this context, the second _pageName should return "Sol System" (or >> "Sol_System" ?). >> >> <noinclude> >> {{#template_params:Type|PartOf (label=Part Of)|ComposedOf}} >> {{#cargo_declare:_table=Place|Type=Page (allowed >> values=SolarSystem,AsteroidBelt,Asteroid,Planet,WaterBody,Continent,GeographicEntity,Nation,SubNationalRegion,City,Neighborhood,Street,Building,Room)|PartOf=Page >> |ComposedOf={{#cargo_query:table=Place|fields=Place._pageName|where = >> PartOf HOLDS "_pageName"}}}} >> </noinclude><includeonly>{{#cargo_store:_table=Place}} >> {{#template_display:_format=standard}} >> [[Category:Place]] >> </includeonly> >> >> I pushed on "Recreate Data" in the Template menu, which may explain how >> "ComposedOf" got added to the table. I did not add ComposedOf to the schema. >> Here is the Place table: >> >> Page Type PartOf ComposedOf >> Earth Planet Sol System >> Mars Planet Sol System >> Sol System SolarSystem >> >> >> >> -david >> >> >> >> On Mon, Aug 30, 2021 at 9:11 PM Sam Wilson <s...@samwilson.id.au> wrote: >> >>> I think the normal way to do this in Cargo would be not to have the >>> inverse property stored in a page's data, but rather to query the inverse >>> wherever required. So, for example, an Idaho page would define part_of >>> as USA, and then on the USA page you could have a template that >>> displays all the composed_of pages: {{#cargo query: tables = places | >>> where = part_of HOLDS 'USA' }}. This way, there's no double-entry of >>> values and so nothing to get out of sync. >>> On 31/8/21 6:42 am, David Epstein wrote: >>> >>> If a class has a *composed_of *property and a *part_of* property, can I >>> define these somewhere as inverse relationships? I'd like to set Idaho as >>> *part_of* the USA and then (automatically) see that assignment in USA's >>> *composed_of >>> *list? >>> >>> Moreover, is it possible to specify that the properties have a more >>> specific domain, not just any page but only pages from the category "Place"? >>> >>> >>> >>> >>> >>> >>> _______________________________________________ >>> MediaWiki-l mailing list -- mediawiki-l@lists.wikimedia.org >>> List information: >>> https://lists.wikimedia.org/postorius/lists/mediawiki-l.lists.wikimedia.org/ >>> >>> _______________________________________________ >>> MediaWiki-l mailing list -- mediawiki-l@lists.wikimedia.org >>> List information: >>> https://lists.wikimedia.org/postorius/lists/mediawiki-l.lists.wikimedia.org/ >>> >> _______________________________________________ >> MediaWiki-l mailing list -- mediawiki-l@lists.wikimedia.org >> List information: >> https://lists.wikimedia.org/postorius/lists/mediawiki-l.lists.wikimedia.org/ >> > > > -- > WikiWorks · MediaWiki Consulting · http://wikiworks.com > _______________________________________________ > MediaWiki-l mailing list -- mediawiki-l@lists.wikimedia.org > List information: > https://lists.wikimedia.org/postorius/lists/mediawiki-l.lists.wikimedia.org/ >
_______________________________________________ MediaWiki-l mailing list -- mediawiki-l@lists.wikimedia.org List information: https://lists.wikimedia.org/postorius/lists/mediawiki-l.lists.wikimedia.org/