How it works

From Redazione
Jump to navigation Jump to search
Line 17: Line 17:
  
 
{{:How it works/Pages structure}}
 
{{:How it works/Pages structure}}
 +
 
'''[[/Pages structure|Find out more...]]'''
 
'''[[/Pages structure|Find out more...]]'''
  
  
 
==Forms & semantic data==
 
==Forms & semantic data==
 +
 
{{:How it works/Forms & semantic data}}
 
{{:How it works/Forms & semantic data}}
 +
 
'''[[/Forms & semantic data|Find out more...]]'''
 
'''[[/Forms & semantic data|Find out more...]]'''
  
Line 28: Line 31:
  
 
{{:How it works/Images upload & gallery}}
 
{{:How it works/Images upload & gallery}}
 +
 
'''[[/Images upload & gallery|Find out more...]]'''
 
'''[[/Images upload & gallery|Find out more...]]'''
  
  
 
==Frontend Index==
 
==Frontend Index==
 +
 
{{:How it works/Frontend Index}}
 
{{:How it works/Frontend Index}}
 +
 
'''[[/Frontend Index|Find out more...]]'''
 
'''[[/Frontend Index|Find out more...]]'''
  
Line 38: Line 44:
 
==Banner==
 
==Banner==
 
{{:How it works/Banner}}
 
{{:How it works/Banner}}
 +
 
'''[[/Banner|Find out more...]]'''
 
'''[[/Banner|Find out more...]]'''
  
Line 44: Line 51:
 
==APIs==
 
==APIs==
 
{{:How it works/APIs}}
 
{{:How it works/APIs}}
 +
 
'''[[/APIs|Find out more...]]'''
 
'''[[/APIs|Find out more...]]'''
 +
  
 
==Parser functions==
 
==Parser functions==
 +
 
{{:How it works/Parser functions}}
 
{{:How it works/Parser functions}}
 +
 
'''[[/Parser functions|Find out more...]]'''
 
'''[[/Parser functions|Find out more...]]'''
 +
  
  
 
==Join team==
 
==Join team==
 +
 
{{:How it works/Join team}}
 
{{:How it works/Join team}}
 +
 
'''[[/Join team|Find out more...]]'''
 
'''[[/Join team|Find out more...]]'''
  
  
 
==For administrators==
 
==For administrators==
 +
 
{{:How it works/For administrators}}
 
{{:How it works/For administrators}}
 +
 
'''[[/For administrators|Find out more...]]'''
 
'''[[/For administrators|Find out more...]]'''
  
  
 
==Logically related questions (L.R.Q.) ==
 
==Logically related questions (L.R.Q.) ==
 +
 
(another way of indicating "frequently asked questions" which  
 
(another way of indicating "frequently asked questions" which  
 
have not yet been asked)
 
have not yet been asked)
  
 
{{:How it works/Logically related questions}}
 
{{:How it works/Logically related questions}}
 +
 
'''[[/Logically related questions|Find out more...]]'''
 
'''[[/Logically related questions|Find out more...]]'''

Revision as of 14:13, 21 June 2020

Introduction

Cultura italiana is a project aiming to create a network and to enhance cooperation among centers of Italian culture and language at abroad.

It is meant to be composed of at least 2 components: a back-end platform, represented by this Mediawiki site where authorized staff of centers of Italian culture and language can add or structure their organization information in a collaborative way and with attention for semantic data, and by a front-end platform, currently represented by this site, where the created contents can be viewed, searched and enjoyed by visitors in an attractive and modern way, including from mobile devices. (depending on what side you are reading this content, one of the links will point to itself)

The project has been initially implemented, since November 2019, within the frame of a European Solidarity Corps project (funded by European Union), is supported at the moment by the center of Italian culture and language in charge of the project which ensures its continuity over time (as well as that the requirements of the project are met) and foresees the inclusion of other institutions and organizations interested in taking part to the initiative.

With reference of the "back-end" part, we oriented ourselves to a Mediawiki system, because is open-source, it offers the most or one of the most reliable systems world-wide for creation and publishing of collaborative contents (thanks to the challenge posed by a critical application like Wikipedia) with a leading version control system (it allows simultaneous editing of the same content by different users, keeping track of the history of changes of each of them, and allowing the comparisons between any version's article with whatever other), and because it can be actually used as a collaborative CMS (content management system) with no hidden information and, once again, completely open source, including the functionalities to represent and to handle structured data, like templates, forms and Semantic Mediawiki.

The key-feature of the project is its ability to easily create semantic data out of simple forms, representing specific set of data (like articles, organizations themselves, meetings, scholarships and other opportunities, reading suggestions, and so forth) with the aim to let them easily accessed from the outside (specifically by the front-end part of the project, as well as by any other third-party, like the websites belonging to centers of Italian language and culture themselves) through either the standard Mediawiki APIs, callable notably by any Wordpress website through dedicated plugins, or by an extended APIs, which is even more effective, so that on the one hand the creation of contents can be centralized and kept separate by their presentation, and on the other they can be served among several platforms (including search engines, which explicitly encourage the use of structured data) thanks to the interoperability ensured by semantic data, and specifically of semantic “ask” queries.

Basically once that you have added a page representing your organization on this site, you can query for any data that you have inserted from the outside (using the standard Mediawiki's api endpoint) through a query like:

{
	"action": "ask",
	"format": "json",
	"query": "[[~Centro italiano Barcellona*]] [[Category:Teachers]] [[Teacher taught languages::Italian]]"
}

which basically will return all teachers of Italian language in charge at the Italian center of Barcelona. (here is the api sandbox where you can play on your own).

Usually you do that with a concealed database, with an arbitrary data-structure in which the aspects of interoperability, accessibility, and cooperativeness are reduced to zero, and therefore which limit the use of your data to the original platform, which is typically "isolated" on the web: furthermore, information stored therein are not readable, as such, from third party systems, through an universal vocabulary which is indeed the aim of Wikidata, a project to which our is strictly related inasmuch as a wikibase repository is already installed and ready to use at this address, although we are currently relying on Semantic Mediawiki, because the federation feature of Wikidata/Wikibase at the year 2020 is not yet ready, and nonetheless we can do the steps in that direction all together. [*** update: in January 2021, Semantic Mediawiki's authors have done some steps in this direction, presented here, although a stable solution will not be usable before the 2nd quarter of 2021]

By contrast to the typical design of ordinary web sites and web applications, where the data structure is concealed, and not accessible or improvable from their users, in a semantic Mediawiki it is expressed in terms of sets of properties (of which here is the complete list]) which are stored among the contents themselves of the wiki! This is a breakthrough approach, because it makes possible for users themselves of the platform to modelize and to shape their own information based on their experience and their needs, and to contribute actively with it, instead than just passively adopting models imposed by others (or: "actively filling with contents models imposed by others") which are necessarily aimed to conflicting or incompatible interests.

Here is for instance a set of properties representing an organization:

  1. Organization address of type Text (1 use)
  2. Organization city of type Text (16 uses)
  3. Organization coordinates of type Geographic coordinates (1 use)
  4. Organization country of type Text (2 uses)
  5. Organization foundation year of type Number (1 use)
  6. Organization logo + of type URL (0 uses)
  7. Organization name of type Text (9 uses)
  8. Organization type of type Text (9 uses)
  9. Organization website of type URL (2 uses)

here is the corresponding form:


Form organization


here is the template filled-in by the form above

{{Form organization
|Name=
|Type=
|Logo=
|Country=
|Address=
|Coordinates=
|Foundation year=
|Email=
|Website=
}}

and here are two elements produced using such data, that is an "Infobox", a summary of the semantic data (corresponding to the field names of an ordinary relational database) of the item (the organization)

Infobox

and a "Factbox", with the same semantic information displayed by Semantic Mediawiki itself (installed on our wiki as an extension).

Factbox

All of them, besides than filled-in with data, can be fully accessed (with regard of their "source code", more precisely a set of pages containing wiki-text) by users and even the related data-structure arbitrarily enriched to represent realities not fitting in a given model: a completely new model could be created to just fit one item, this is completely acceptable.

Furthermore, while the components above produce a clear summary of data, in the view of our project, they have not a merely aesthetic purpose – or rather: they are not merely intended to visitors, but rather to external platforms (namely all those focusing on linked data, starting with Wikidata) which as mentioned can query the APIs, and to use and display the information according to their needs: indeed, although the present site can of course be accessed and consulted by visitors in an autonomous way as whatever other wiki, is to be considered, as above, a sophisticated CMS and at the same time a laboratory for centers of Italian culture and language in order to shape their information in innovative ways, to enhance their cooperation at this regard (in our opinion of utmost importance, since adopted data structures and behavioral patterns are related) and to showcase such information on diverse and even separated front-ends.

Find out more...


Application form

The use of this platform is free for all Italian language and culture organizations world-wide.

Just fill-in the form below and we will contact you promptly in order to set up your account and to send you any useful information.
You will be immediately able to:

  • manage a wiki-like page of your organization plus an arbitrary number of sub-pages (like the following)
  • structure your data and information through a reach set of features allowing their visualization in a front-end like the following, where external visitors can find all the material created by organizations, divided by geographical area and kind of contents


Find out more...


Pages structure

After registration, you will be assigned with a specific "domain" corresponding to a page in the form

https://culturaitaliana.org/wiki/[organization name]


which can contain an arbitrary number of sub-pages within it. Here are some information of a sub-page from wikipedia:

Making a new [[link]] that begins with a / (slash) is the common way to start a subpage. The page to which this link points is considered "subordinate" to its host page, and is titled and linked as [[Parentpage/Subpage]]. It is possible to create a subpage of a subpage (or a sub-subpage). At the top of each subpage or sub-subpage, you can find a backlink (a.k.a. breadcrumb) to the higher levels of the page.

In short all the pages of your organization will be located under a dedicated address but at the same time they will reside in a shared environment, both to ensure collaborativeness among organizations, and because by this way you can enjoy, de facto, a fully maintained platform, where site's administrators (meant to be IT professionals) will advice you of any consistency of the wiki text (which entails some complexity) and will take care of extensions, templates, modules, semantic properties, and all other elements which guarantee a profitable and rich experience both from the side of visitors, and the organizations themselves.

By default, your organization's data structure will take this form:


Find out more...


Forms & semantic data

Forms & semantic data

Find out more...


Images upload & gallery

The Mediawiki version (1.35) powering this platform has been improved in order to support the storage of images and media files at a specific path, so that each organization can save all their images within a specific "folder" (under the main page itself of the organization, or whatever sub-page within it) and can easily retrieve them from the Visual editor's Media gallery, without mixing up their files with those of other organizations, and without file names conflicts or restrictions.


Find out more...


Frontend Index

The wiki page 'Frontend Index' contains a structured index of all your organization's page automatically created and updated by a server-side script.

This index is the editable instance of the index provided by the APIs wikipages and it is used as well from the official front end version of your website (for instance of this organization) in order to display the navigation menu on the left.

Through the editable Index on that wiki page, you can hide/unhide pages on the front end site (and therefore not present in the index) and even to rearrange them.

This is the Frontend Index of the root pages of this wiki and the Frontend Index of each organization will reside at the path

https://culturaitaliana.org/wiki/[organization name]/Frontend_Index

Find out more...


Every page of your organization can be headed by your organization's banner. Just upload a banner image under your page named "Banner.jpg", so that it will appear in the following url:

https://culturaitaliana.org/wiki/[organization name]/Banner.jpg

(the banner is therefore expected to be in jpeg format) and the system will automatically display it on the top of each of your pages, including on the front end site !


Find out more...


APIs

While you are establishing your organization's page structure at an address like the following

https://culturaitaliana.org/wiki/Centro_italiano_Barcellona

that is structuring all your information optionally using semantic data through this wiki platform, you can start querying your pages (or even all your site) through the following set of APIs, for instance in order to display them in your wordpress site, or in whatever third party site written in any computer language.

The following endpoints do not directly query the standard mediawiki APIs, but an extended APIs built on top of the mediawiki APIs (called autonomously by an internal script running in the background which keeps updated all the information) providing additional data, like the detected language for each page, all the semantic data related to each page, the "title structure" (to allow the use of slashes within the title itself, ensuring at the same time the coherence of the hierarchical structure) and more.

Basically, through the following APIs you can query all the information of the created pages or a specific "folder" within it (also retrieving a structured table of contents which can be easily used to create navigation panels, and of course, html content of pages) without dealing with the complexity and lack of immediacy of the standard Mediawiki api, which would require multiple calls and further elaboration to reach that result.

Find out more...


Parser functions

Parser functions

Find out more...


Join team

If you would like to participate to enrich the content of this platform for creating an unique eco-system of Italian culture and language, fill in this form and we will be happy to discuss the kind of contribution you might bring with you!


Find out more...


For administrators

For administrators

Find out more...


Logically related questions (L.R.Q.)

(another way of indicating "frequently asked questions" which have not yet been asked)

(another way of indicating "frequently asked questions" which have not yet been asked)


Why Mediawiki rather than Wordpress ?
Well, first Mediawiki is actually being used by the team behind Wordpress (Automattic) for their developer documentation as proof of the uniqueness of its features. Then, because the business model of Mediawiki and Wordpress are completely different. Wordpress allows an easy use but as soon as you want to expand or complete your website you are pushed (or constrained) to adopt paid solutions. Mediawiki (as well as our platform) is completely free, including any desirable advanced feature, at cost to deal yourself with the code (starting from wiki text itself, and proceeding with the creation of dedicated extensions). Then, because the intrinsic anti-immediacy of Mediawiki constrains the creation of quality of contents: dealing with the wiki text (either created through the help of visual editor, or directly) on the one hand slows down the content creation, and on the other provides you with a set of formatting and structuring tools specifically aimed at quality and complexity. Then because Mediawiki offers a strong versioning controlling and allows a collaborativeness that Wordpress is not able to offer: many people can work on the same content in the same time, and notwithstanding the integrity of the content is preserved, and you can access all the changes made by each of editors at any time. Finally because through the general design of our platform (where Mediawiki is used as back-end site) the presentation of contents (i.e. the appearance of the website) can be completely decoupled by contents themselves: a part of your team can solely take care of contents, and their organization or pages structure, and another part of the team can design whatever data consumer application querying the APIs, and to use the data and the semantic data returned by it, in any conceivable way, apart from creating client-side applications, of course for data visualization as well.
Why a platform representing the Italian culture is conceived in English ?
Well, surely because English is the lingua franca of our times. Then because the native language of world of technology, to which this platform refers to, is English. Then because this would be also a demonstration of the ability of a kind of "Italian culture" to speak a technological language without diverting from its authentic nature, which being intrinsically humanistic, should not interpose hiatuses or ditches between disciplines and their languages but to pursue a universal vocation. Then of course because the audience for this platform is meant to be international, that is able to speak only partially Italian language, in such a way that where they will experience that a distinguished (not trivial, nor anonymous) English language originates from a specific wit of the Italian culture itself, they will be inclined to study and to learn Italian not only because it stands at a specific position in the rank of world's most studied languages (for whatever reason) but for its inclusive and possibly universal character, therefore providing the feeling of being at the center of cultural changes of our times. Then because the aim of each language is poetry, in such a way that expressing oneself in a foreign language (rather than in the mother tongue) refrains precisely from doing, or that is ultimately expected, poetry, and allows to write in a rather plain way focusing on contents (that is on a stiffened form of expression) limiting one's own activity within conventional limits, ultimately productive in the daily life.
How the front-end counterpart of this site is created or updated?
Well, while the back-end side of this platform is built upon a traditional technology (specifically Apache/PHP/MySQL) the front-end side is built on Node.js, eventually Nginx, and a client-side Javascript framework based on Vue.js like Quasar framework. The latter side is fueled with data retrieved from Mediawiki (a forked version with some extended features, mainly an enhanced support for a non-flat namespace that is with sub-pages and sub-folders) through a Node.js script triggered every time that a page or file is created, updated, moved and deleted, and autonomously checking the mediawiki database with a specific frequency for any other indirect change (for instance when pages are imported through the mediawiki import page, or after the execution of some maintenance script). By this way, we can ensure a real time synchronization between the two sides on direct page's editing, and an accurate synchronization "within minutes" when the wiki site is updated in some indirect way. During this process the Node.js script performs some convoluted operation structuring data in such a way that they can be retrieved or even "consumed" by a front-end interface in a way that would not be possible without some intermediate operation and a further elaboration of data (for instance such infrastructure allows offline navigation through consistent set of pages). In short the front-end application (which of course is built ad hoc for this purpose, and is subjected to a development process completely decoupled by that of Mediawiki, even if the inter-dependency of the two is taken into account) retrieves its data through a dedicated API from a specific Node.js back-end, and these data are continuously updated and structured following the changes performed on the Mediawiki back end.
Why Mediawiki rather than Wordpress ? (again)
Because the ultimate aim of this platform is to organize and structure significant data ensuring interoperability and a frictionless dissemination in the public domain (under specific terms, or after a specific amount of time) in such a way that Mediawiki has been chosen for its complementarity with Wikidata which aims to represent a common platform for the world's repositories of semantic data, and possibly to participate with its development. In this sense Mediawiki is an open platform and an open archive through which data recorded therein are not registered in an arbitrary or proprietary data structure, but in a universal vocabulary (or they are conceptually prone to be so) which can be understood potentially by every one: where of course we don't mean a limited set of specific enterprises holding the data ingenuously provided by users at the expense of their lives.



Find out more...