Difference between revisions of "Maker Hub Wiki"
Line 38: | Line 38: | ||
When you have saved this property, reference the [https://www.semantic-mediawiki.org/wiki/Help:Factbox Factbox]] located at the bottom of the screen. If this is not visible, insert the line | When you have saved this property, reference the [https://www.semantic-mediawiki.org/wiki/Help:Factbox Factbox]] located at the bottom of the screen. If this is not visible, insert the line | ||
<nowiki> __SHOWFACTBOX__ </nowiki> | <nowiki> __SHOWFACTBOX__ </nowiki> | ||
− | at the bottom of the wiki page. Remember to remove this line when you have completed it. This will show you the properties created on this page and their values. You can click on the links to the new properties to open their wiki pages. Conversely, you could simply navigate to Property:Property_1_Name in the Wiki if that is easier (and skip the whole factbox thing - but - I like to see the values). On the property page, you will want to declare the property [https://www.semantic-mediawiki.org/wiki/Help:List_of_datatypes dataype]. The default type is Page, but it is still useful to set this. You can see the datatypes specified or our properties in the table above. It is a good idea to look at the Wiki | + | at the bottom of the wiki page. Remember to remove this line when you have completed it. This will show you the properties created on this page and their values. You can click on the links to the new properties to open their wiki pages. Conversely, you could simply navigate to Property:Property_1_Name in the Wiki if that is easier (and skip the whole factbox thing - but - I like to see the values). On the property page, you will want to declare the property [https://www.semantic-mediawiki.org/wiki/Help:List_of_datatypes dataype]. The default type is Page, but it is still useful to set this. You can see the datatypes specified or our properties in the table above. It is a good idea to look at the Wiki markup on these pages and copy it from a similar property. |
+ | |||
+ | Also - in the sidebar of the Wiki, there is a ''Browse properties'' link that shows the properties of the Page. This has some useful information as well. | ||
===Restricting Property Values=== | ===Restricting Property Values=== | ||
Line 49: | Line 51: | ||
Add permissible values as listed items starting either with "*" or "**" to the "MediaWiki:Smw_allows_list_..." page, e.g. "* Bar" or "** Foobar" to page "MediaWiki:Smw_allows_list_Foo".</nowiki> | Add permissible values as listed items starting either with "*" or "**" to the "MediaWiki:Smw_allows_list_..." page, e.g. "* Bar" or "** Foobar" to page "MediaWiki:Smw_allows_list_Foo".</nowiki> | ||
− | However, might want to go one step further and auto-generate this list from our own properties. For instance, all of our domains are marked with the [Property:Is domain] and our facilities are marked with the [Property:Is facility]. If you view the pages for [MediaWiki:Smw_allows_list_Domains] and [MediaWiki:Smw_allows_list_Facilities], you will see that they have the correct | + | However, might want to go one step further and auto-generate this list from our own properties. For instance, all of our domains are marked with the [Property:Is domain] and our facilities are marked with the [Property:Is facility]. If you view the pages for [MediaWiki:Smw_allows_list_Domains] and [MediaWiki:Smw_allows_list_Facilities], you will see that they have the correct unordered lists. But if you view the source, you will see something like the following (from [MediaWiki:Smw_allows_list_Domains]: |
<nowiki>{{#ask: [[Is domain::True]] | <nowiki>{{#ask: [[Is domain::True]] | ||
|format=template | |format=template | ||
Line 55: | Line 57: | ||
|link=none | |link=none | ||
}} </nowiki> | }} </nowiki> | ||
+ | |||
+ | This autogenerates the correct ordered list for everything marked [Property:Is domain]. One might think that using the |format=ul would create the appropriate unordered list format (with the * in front), but it apparently does not. Therefore, this query removes the page link (link=none) and reduces the entry to simple text, and then it uses the template ([Template:Starlist_for_allow_value_list]) to render the text with a * in front of it (''See [https://www.mediawiki.org/wiki/Help:Templates help on templates) for an explanation of templates'''. This works well. | ||
+ | |||
+ | ===Philosophy on New Properties=== | ||
+ | Basically, there isn't much of one. The beauty of properties is that you can add them, and mix and match them to form unique queries. I suspect that there will be a query that shows every piece of equipment in the Maker Hub. There could be one that shows everything - equipment, tools, supplies, etc. There could be one that shows equipment in the machine shop. And then, one can create more focused properties. I have initially created two as examples - [Property:Is sheet metal equipment] and [Property:Is soldering irons equipment]. |
Revision as of 21:53, 20 June 2018
This wiki is created on MediaWiki Version 1.35.7 (2912741).
The goal of this wiki is to provide information on the facilities, equipment, tools, supplies, and software available in the George Fox University Maker Hub. If you have never edited a Wiki before, you should reference the documentation on the MediaWiki site - specifically the page on Editing.
This site makes use of the standard extension, Semantic MediaWiki. This extension allows us to set one or more properties on unique wiki pages. These properties can then be queried within other pages and the results can be dynamically displayed in a variety of result formats. The main benefit is that a lot of entries can be auto-generated to allow easy navigation of the site as the site develops and evolves. The editors can add new pages, attach properties to those pages, and then have those pages automatically show up on other pages. This saves the editors from having to maintain a variety of lists on multiple pages.
For example, on the Main Page, there is a section for Facilities. This section looks like this:
==[[Facilities]]== The Maker Hub is comprised of the following [[Facilities|facilities]]. These links describe each area and the resources within those areas. {{#ask: [[Is facility::True]] |format=ul }}
The ask directive is a Semantic MediaWiki inline query. This particular query searches the wiki pages for pages that have the property Is facility set to True. (There is an article on Property naming and in the best practices section, it is advised that you use a verb phrase to describe properties). Also, properties can have various datatypes - in this case, the property datatype is Boolean. The |format=ul line directs the results to be printed out as an unordered list.
The value in this particular setup is that, when a new facility is added to the space, it will automatically show up in this list. Now, one might argue that facilities are not going to show up at frequent intervals, and, this is true. However, we can extend this practice to create new lists, and Equipment is one of the major ones. The use of properties allows us to have properties that mark pages as equipment (Is equipment::True), and to say that the equipment is located in a particular facility (Is Located in facility::Machine Shop), and to indicated that the equipment is used in a particular domain (Is used in domain::Metal). The use of properties rather than page structure gives us tremendous flexibility in expanding to future groupings. Imagine that we might want to see all equipment that is used on Wood that is located in the Machine Shop or the Wood Shop. This can be easily generated with a query.
Properties
You can see all of the properties in use on the page Special:Properties. However, these are all of the properties in use in the entire Wiki. To identify the properties of interest to us, we will mark each of them with the Boolean property Property:Is property. Clicking on this link shows every property we have marked with this. However, we would also like to add the datatype property (Property:Has type) as well as a description for our own use (Property:Description). We can query these properties and display a table here like this (view the source to see how this is done):
Creating New Properties
To create a new property, assign it on a page using standard Property Syntax. This can be done inline, but most often in this wiki, you will see the set directive used.
{{#set: | Property_1_Name=Value | Property_2_Name=Value }}
When you have saved this property, reference the Factbox] located at the bottom of the screen. If this is not visible, insert the line
__SHOWFACTBOX__
at the bottom of the wiki page. Remember to remove this line when you have completed it. This will show you the properties created on this page and their values. You can click on the links to the new properties to open their wiki pages. Conversely, you could simply navigate to Property:Property_1_Name in the Wiki if that is easier (and skip the whole factbox thing - but - I like to see the values). On the property page, you will want to declare the property dataype. The default type is Page, but it is still useful to set this. You can see the datatypes specified or our properties in the table above. It is a good idea to look at the Wiki markup on these pages and copy it from a similar property.
Also - in the sidebar of the Wiki, there is a Browse properties link that shows the properties of the Page. This has some useful information as well.
Restricting Property Values
When you create a new property that has a Page (or Text, or possibly other values) that can be assigned to a wide range of values, it might be nice to restrict those values to a particular subset so that typos don't render the property useless. This has been done on the Is used in domain and the Is located in facility properties. You will see a special property added to those property pages called Allows value list. The [help link provides all of the pertinent information, but of special importance is the following:
Two steps have to be taken to use this special property: Add [[Allows value list::...]] to a property page for defining a page reference, e.g. [[Allows value list::Foo]] will define page "MediaWiki:Smw_allows_list_Foo". Add permissible values as listed items starting either with "*" or "**" to the "MediaWiki:Smw_allows_list_..." page, e.g. "* Bar" or "** Foobar" to page "MediaWiki:Smw_allows_list_Foo".
However, might want to go one step further and auto-generate this list from our own properties. For instance, all of our domains are marked with the [Property:Is domain] and our facilities are marked with the [Property:Is facility]. If you view the pages for [MediaWiki:Smw_allows_list_Domains] and [MediaWiki:Smw_allows_list_Facilities], you will see that they have the correct unordered lists. But if you view the source, you will see something like the following (from [MediaWiki:Smw_allows_list_Domains]:
{{#ask: [[Is domain::True]] |format=template |template=Starlist for allow value list |link=none }}
This autogenerates the correct ordered list for everything marked [Property:Is domain]. One might think that using the |format=ul would create the appropriate unordered list format (with the * in front), but it apparently does not. Therefore, this query removes the page link (link=none) and reduces the entry to simple text, and then it uses the template ([Template:Starlist_for_allow_value_list]) to render the text with a * in front of it (See [https://www.mediawiki.org/wiki/Help:Templates help on templates) for an explanation of templates'. This works well.
Philosophy on New Properties
Basically, there isn't much of one. The beauty of properties is that you can add them, and mix and match them to form unique queries. I suspect that there will be a query that shows every piece of equipment in the Maker Hub. There could be one that shows everything - equipment, tools, supplies, etc. There could be one that shows equipment in the machine shop. And then, one can create more focused properties. I have initially created two as examples - [Property:Is sheet metal equipment] and [Property:Is soldering irons equipment].