[2237] | 1 | |
---|
| 2 | ************************************ |
---|
| 3 | SMC - Semantic Mapping Component |
---|
| 4 | ************************************ |
---|
| 5 | |
---|
| 6 | SMC is a module within the CMDI framework [1] of the CLARIN infrastructure. |
---|
| 7 | |
---|
| 8 | It provides mappings between fields in heterogeneous metadata descriptions |
---|
| 9 | building on top of Data Category Registry (ISOcat [2]) |
---|
| 10 | |
---|
| 11 | [1] http://clarin.eu/cmdi |
---|
| 12 | [2] http://isocat.org |
---|
| 13 | |
---|
| 14 | Overview |
---|
| 15 | -------- |
---|
| 16 | |
---|
| 17 | The code consists mainly of XSL-stylesheets |
---|
| 18 | [src/scripts/*.xsl] |
---|
| 19 | and a minimal Java "application" (meant mainly to invoke the initialization steps) |
---|
| 20 | [src/eu/clarin/cmdi/smc/SMC.java] |
---|
| 21 | |
---|
| 22 | |
---|
| 23 | Installation |
---|
| 24 | ------------- |
---|
| 25 | |
---|
[6847] | 26 | - SMC Browser is a client side JS application, so it doesn't have any |
---|
| 27 | server-side requirements. You can simply open it in a browser and it should |
---|
| 28 | work. |
---|
| 29 | - You can find SMC Browser in src/web directory. The directory structure is as |
---|
| 30 | follows: |
---|
| 31 | - index.html - HTML template |
---|
| 32 | - get.php - very simple HTTP proxy script (it returns content of a given URL |
---|
| 33 | making it possible to bypass AJAX cross-domain restrictions). |
---|
| 34 | Currently used only for gathering details about philosopers (see "handling |
---|
| 35 | details" below). |
---|
| 36 | - scripts - all js libraries and css stylesheets SMC Browser depends on |
---|
| 37 | - docs - static HTML content |
---|
| 38 | - data - sample data consistent with the SMC Browser configuration commited to |
---|
| 39 | the repo |
---|
| 40 | - Available data sources |
---|
| 41 | To adjust a list of available data sources edit opts.graph variable in |
---|
| 42 | scripts/js/config.js: |
---|
| 43 | - value property should be one of the values[].value and denotes data set |
---|
| 44 | selected after the page is loaded |
---|
| 45 | - values array describes all available datasets |
---|
| 46 | - Static pages |
---|
| 47 | Static page templates are in the /docs directory. |
---|
| 48 | You can use rst2html (part of docutils package) to convert them into HTML. |
---|
| 49 | HTML files should be then moved to docs/ |
---|
| 50 | - Handling details |
---|
| 51 | - The right column of the SMC Browser displays node details. |
---|
| 52 | Details can come from different sources: |
---|
| 53 | - If the node is of type "philosopher" they are simply read from Wikipedia. |
---|
| 54 | To bypass AJAX cross-domain restrictions and assure proper encoding a |
---|
| 55 | very simple PHP proxy script is used (get.php). You can adjust get.php |
---|
| 56 | location in the getDetailInfo() function in the scripts/js/smc-graph.js |
---|
| 57 | - In other case there are two possibilities: |
---|
| 58 | - Data can be loaded from a prepared static HTML file. |
---|
| 59 | Such file has to be generated before (probably using scripts in the /src |
---|
| 60 | drectory other then /src/web). |
---|
| 61 | Path to the file is set up in config.url.detail variable in |
---|
| 62 | scripts/js/config.js. By default it points to an empty HTML file (so no |
---|
| 63 | details will be provided but there will be also no error). |
---|
| 64 | - Data can be loaded dinamically by reading data from a given URL |
---|
| 65 | providing details in the HTML format. URL is constructed as: |
---|
| 66 | config.url.detail + "?type=" + type + "&key=" + id |
---|
| 67 | where type and id comes from the node and config.url.detail is defined |
---|
| 68 | in scripts/js/config.js |
---|
| 69 | SMC Browser running at https://clarin.oeaw.ac.at/exist/apps/smc-browser/ |
---|
| 70 | is using xql query run in eXist to generate details. |
---|
| 71 | |
---|