Commit 6f4e95b4 authored by Stephan Kreutzer's avatar Stephan Kreutzer

'sosmap' prototype added.

parent abb02f90
......@@ -14,7 +14,7 @@ consisting of the format and the example text?
<POI ID="2" Type="Issue">
<Parent Parent-ID="5"/>
<Title>Legal risk could prevent usefulness/adoptability because of uncertain legal status</Title>
<Text>If the legal status of the format (defined as: the potentially copyrightable human expression of coming up with the names and/or their structure as an application programming interface) isn’t clearly, explicitly indicated, but the format published somewhere anyway, that could only be because of the following reasons: 1. the author (defined as: William Charlton, and by extension/modifications, if copyrightable, Stephan Kreutzer) assumes that it isn’t copyrightable, 2. the author published it under the legal default of “all rights reserved” (defined as: in most jurisdictions and via Berne Convention, if not limited by special exceptions to copyright), 3. the format is supposed to be only used for local, personal use, as the format was distributed and obtained legally by the author himself, but no license was granted that would allow to extend the use of the format to other users. None of these three options is satisfactory and of no risk, because even if the author assumes 1., it could turn out that this was an incorrect assumption, and then the question is if earlier use by third parties based on this wrong assumption by both author and users is at risk of being seen illegal retrospectively or if the author stops to allow future use, when those questions should have been resolved in advance. Some users may use it without considering/caring about the potential legal risk, they may be covered by the author distributing the file without a license, which can continue to work as long as the publication remains available. Others might not want to use the format because the copyright default or the other options would put them at risk of committing a copyright violation for most reasonable use cases that aren't entirely personal.</Text>
<Text>If the legal status of the format (defined as: the potentially copyrightable human expression of coming up with the names and/or their structure as an application programming interface) isn’t clearly, explicitly indicated, but the format published somewhere anyway, that could only be because of the following reasons: 1. the author (defined as: William Charlton, and by extension/modifications, if copyrightable, Stephan Kreutzer) assumes that it isn’t copyrightable, 2. the author published it under the legal default of “all rights reserved” (defined as: in most jurisdictions and via Berne Convention, if not limited by special exceptions to copyright), 3. the format is supposed to be only used for local, personal use, as the format was distributed and obtained legally by the author himself, but no license was granted that would allow to extend the use of the format to other users. None of these three options is satisfactory and of no risk, because even if the author assumes 1., it could turn out that this was an incorrect assumption, and then the question is if earlier use by third parties based on this wrong assumption by both author and users is at risk of being seen illegal retrospectively or if the author stops to allow future use, when those questions should have been resolved in advance. Some users may use it without considering/caring about the potential legal risk, they may be covered by the author distributing the file without a license, which can continue to work as long as the publication remains available. Others might not want to use the format because the copyright default or the other options would put them at risk of committing a copyright violation for most reasonable use cases that arent entirely personal.</Text>
</POI>
<POI ID="3" Type="Issue">
<Parent Parent-ID="5"/>
......
This diff is collapsed.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
This diff is collapsed.
Parts of $/sos_xml_to_sos_map_xhtml_1.xsl and everything in $/sosmap/
are based on commit 115 of https://github.com/cgutteridge/webleau/
(https://github.com/cgutteridge/webleau/tree/f4d7fabd081aa099e986c64ff2a8f5484bbb8ed2).
$/sosmap/js/hammer.min.js.map was replaced with the most recent commit 3
(https://github.com/hammerjs/hammer.js/blob/a28c530297f6e66785476013a6c9162305a2ce42/hammer.min.js.map).
$/sosmap/css/jquery-ui.css and $/sosmap/js/jquery.ui.touch-punch.min.js
are licensed under Expat (see $/EXPAT-LICENSE) or GPL 2 (see $/GPL_2-LICENSE);
$/sosmap/js/hammer.min.js, $/sosmap/js/hammer.min.js.map, $/sosmap/js/jquery-1.12.4.min.js
and $/sosmap/js/jquery-ui.js are licensed under Expat (see $/EXPAT-LICENSE);
$/sosmap/css/sosmap.css, $/sosmap/js/lqs/* and $/sos_xml_to_sos_map_xhtml_1.xsl
are licensed under the Apache 2.0 (see $/APACHE_2_0-LICENSE).
The $/sosmap/index.html is generated via a XSLT transformation using the
$/sos_xml_to_sos_map_xhtml_1.xsl XSLT stylesheet on a SOS XML file.
The already existing file is based on $/../examples/copyright_license_for_format_examples.xml
(commit 1 of https://gitlab.com/skreutzer/sos-experimential/blob/master/examples/copyright_license_for_format_examples.xml,
https://gitlab.com/skreutzer/sos-experimential/tree/abb02f905159d7092b00570122fc1e4c7c0eb6a0).
#!/bin/sh
java -cp ./xml_xslt_transformator_1 xml_xslt_transformator_1 jobfile_xml_xslt_transformator_1.xml resultinfo_xml_xslt_transformator_1.xml
<?xml version="1.0" encoding="UTF-8"?>
<xml-xslt-transformator-1-jobfile>
<job input-file="../../examples/copyright_license_for_format_examples.xml" entities-resolver-config-file="./xml_xslt_transformator_1/entities/config_empty.xml" stylesheet-file="./sos_xml_to_sos_map_xhtml_1.xsl" output-file="./sosmap/index.html"/>
</xml-xslt-transformator-1-jobfile>
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2018 Christopher Gutteridge, Stephan Kreutzer
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" xmlns:sos="http://www.untiednations.com/SOS">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no" doctype-public="-//W3C//DTD XHTML 1.1//EN" doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"/>
<xsl:template match="/">
<html version="-//W3C//DTD XHTML 1.1//EN" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/1999/xhtml http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8"/>
<xsl:text>&#xA;</xsl:text>
<xsl:comment> This file was created by sos_xml_to_sos_map_xhtml_1.xsl, which is free software licensed under the Apache License 2.0 (see https://gitlab.com/skreutzer/sos-experimential/prototypes/sosmap). </xsl:comment>
<xsl:text>&#xA;</xsl:text>
<xsl:comment>
Copyright 2018 Christopher Gutteridge, Stephan Kreutzer
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
The data in the LQS.setLayout() argument is not part of this program,
it's user data that is only processed. A different license may apply.
</xsl:comment>
<xsl:text>&#xA;</xsl:text>
<title>SOS Map Prototype</title>
<meta content="initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" name="viewport"/>
<!-- <script src="...">//</script> to prevent self-closing by XSLT outputting XHTML. -->
<script type="text/javascript" src="js/jquery-1.12.4.min.js">//</script>
<script type="text/javascript" src="js/jquery-ui.js">//</script>
<script type="text/javascript" src="js/jquery.ui.touch-punch.min.js">//</script>
<script type="text/javascript" src="js/hammer.min.js">//</script>
<script type="text/javascript" src="js/lqs/core.js">//</script>
<script type="text/javascript" src="js/lqs/point.js">//</script>
<script type="text/javascript" src="js/lqs/line.js">//</script>
<script type="text/javascript" src="js/lqs/node.js">//</script>
<script type="text/javascript" src="js/lqs/link.js">//</script>
<script type="text/javascript" src="js/lqs/viewspec.js">//</script>
<script type="text/javascript" src="js/lqs/node-text.js">//</script>
<script type="text/javascript" src="js/lqs/node-html.js">//</script>
<script type="text/javascript" src="js/lqs/node-error.js">//</script>
<script type="text/javascript" src="js/lqs/node-embed.js">//</script>
<script type="text/javascript" src="js/lqs/node-cited.js">//</script>
<link rel="stylesheet" type="text/css" href="css/jquery-ui.css"/>
<link rel="stylesheet" type="text/css" href="css/sosmap.css"/>
<script type="text/javascript">
<xsl:text>
document.addEventListener('DOMContentLoaded', function() {
var lqs = new LQS();
// The data passed as argument to this call is not part of this program, it's user data and might be under a different license than this program. This program also doesn't depend on it or link it as a library, it's merely processed.
lqs.setLayout( {
nodes: [
</xsl:text>
<xsl:apply-templates select="/sos:SOS/sos:POI"/>
<xsl:text>
],
links: [
</xsl:text>
<xsl:apply-templates select="/sos:SOS/sos:POI/sos:Parent"/>
<xsl:text>
]
});
});
</xsl:text>
</script>
</head>
<body>
</body>
</html>
</xsl:template>
<xsl:template match="/sos:SOS/sos:POI">
<!-- TODO: Things break if JSON special characters are in the input. It's a bad idea to mix different format conventions, and as XSLT has trouble of dealing with them, we might need to build a dedicated standalone generator tool. -->
<xsl:text>{id: '</xsl:text>
<xsl:value-of select="@ID"/>
<xsl:text>', pos: { x: </xsl:text>
<xsl:value-of select="position()-1"/>
<!--xsl:text> * 400, y: 0 }, size: { width: 200, height: 200 }, title: '</xsl:text-->
<xsl:text> * 0, y: 0 }, size: { width: 200, height: 200 }, title: '</xsl:text>
<xsl:value-of select="./sos:Title//text()"/>
<xsl:text>', type: 'text', text: '</xsl:text>
<xsl:value-of select="./sos:Text//text()"/>
<xsl:text>'},</xsl:text>
</xsl:template>
<xsl:template match="/sos:SOS/sos:POI/sos:Parent">
<xsl:text>{label:"</xsl:text>
<xsl:choose>
<xsl:when test="../@Type='Issue'">
<!-- This is for arrows pointing to the Issue, ignoring the type of the source POI. -->
<xsl:text>causes</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>???</xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:text>",id:"connection-</xsl:text>
<xsl:value-of select="./@Parent-ID"/>
<xsl:text>-</xsl:text>
<xsl:value-of select="../@ID"/>
<xsl:text>",subject:{node:"</xsl:text>
<xsl:value-of select="./@Parent-ID"/>
<xsl:text>"},object:{node:"</xsl:text>
<xsl:value-of select="../@ID"/>
<xsl:text>"}},</xsl:text>
</xsl:template>
</xsl:stylesheet>
This diff is collapsed.
/* general */
body {
font-size:10pt;
font-family:serif;
width: 100%;
height: 100%;
background-color: #f8f0dc;
overflow: hidden;
}
a {
color: #fff !important;
}
.lqs_nodes {
cursor: crosshair;
position: absolute;
top: 0px;
left: 0px;
width: 100000px;
height: 100000px;
}
.lqs_svg, .lqs_bgsvg {
width: 100000px;
height: 100000px;
position: absolute;
top: 0;
left: 0;
pointer-events: none;
}
.ident {
position:fixed;
pointer-events: none;
left:1%;
top:1%;
font-family: fantasy;
font-style: italic;
font-weight: bold;
opacity: 0.1;
font-size: 300%;
}
.normal-paste {
-moz-user-select: text;
-webkit-user-select: text;
-ms-user-select: text;
user-select: text;
}
/* end general */
/* seeds */
.lqs_seed {
margin: 2px 5px 0px 5px;
display: inline-block;
vertical-align:top;
padding: 3px 10px;
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
user-select: none;
font-family: sans-serif;
border-radius: 4px;
border: 1px dashed #888888;
color: #888888;
cursor: move;
}
.lqs_seed_inline {
//border-color: #ccc;
padding: 1px 5px;
margin-left: 0px;
margin-right: 0px;
vertical-align: middle;
}
.lqs_seed_filled {
color: white;
border: 1px solid #fff;
background-color: #b8b8b8;
}
.lqs_seed_filled:hover,
.lqs_seed.ui-draggable-dragging {
margin-top: 0px;
margin-bottom: 2px;
background-color: #666666;
box-shadow: 0px 0px 20px 2px rgba(0,0,0,0.2);
}
/* end seeds */
/* controls */
.controls_icon {
position: fixed;
top:0%;
left:0%;
opacity: 0.2;
padding: 10px;
color: #000;
background-color: #999;
border-bottom-left-radius: 5px;
z-index: 1000;
}
.controls_icon img {
width: 64px;
height: 64px;
display: block;
}
.controls_wrapper {
z-index: 1000;
position: fixed;
}
.controls {
font-family: sans-serif;
z-index: 1000;
width:20%;
height:100%;
overflow-y: auto;
position: fixed;
top:0%;
left:0%;
text-align: left;
background-color: #cfcfcf;
padding: 10px;
display: none;
border-bottom-left-radius: 5px;
border-left: solid 1px #f8f0dc;
border-bottom: solid 1px #f8f0dc;
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
user-select: none;
}
.controls_wrapper:hover .controls_icon {
display: none;
}
.controls_wrapper:hover .controls {
display: block;
}
.controls_wrapper input {
width: 100%;
}
.controls .lqs_controls_tools {
text-align: left;
}
.controls .lqs_tool {
background-color: #787878;
color: white;
cursor: pointer;
padding: 3px;
margin: 3px;
display: inline-block;
border-radius: 3px;
}
.controls .lqs_tool:hover {
background-color: #666;
}
.lqs_controls_subtitle {
font-weight: bold;
margin: 1em 0 0.3em 0;
}
/* end controls */
/* nodes */
.lqs_node:hover .lqs_tool {
color: white;
cursor: pointer;
font-size: 100%;
padding: 3px;
display: inline-block;
}
.ui-resizable-handle {
opacity: 0;
}
.ui-icon-gripsmall-diagonal-se {
background-color: red;
width: 16px;
height: 16px;
right: 1px;
bottom: 1px;
position: absolute;
display: block;
background-image: none !important;
}
.lqs_node {
position: absolute;
cursor: default;
top: 0px;
left: 0px;
background-color: #cfcfcf;
border: solid 1px #f8f0dc;
border-radius: 5px;
margin: 0;
padding: 0px;
overflow: hidden;
box-shadow: 2px 6px 20px 2px rgba(0,0,0,0.1);
}
.lqs_node_squish {
position: absolute;
cursor: move;
box-shadow: 2px 6px 20px 2px rgba(0,0,0,0.2);
text-align: center;
background-color: #6c6c6c;
color: #fff;
overflow: hidden;
font-family: sans-serif;
padding: 2px 8px;
border: solid 1px #f8f0dc;
border-radius: 5px;
}
.lqs_node_icon {
position: absolute;
cursor: move;
top: 0px;
left: 0px;
margin: 0;
padding: 0px;
border-radius: 5px;
border: solid 1px #aaa;
box-shadow: 2px 6px 20px 2px rgba(0,0,0,0.2);
}
.lqs_node_icon.drop-hover {
background-color: #666;
}
.lqs_dot {
position: absolute;
cursor: move;
}
.lqs_cached {
background-color: rgba(255,0,255,0.02);
border: dashed 1px #999;
padding: 5px;
}
.lqs_node_title {
text-align: center;
background-color: #6c6c6c;
color: #fff;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
height: 18px;
font-size: 12px;
overflow: hidden;
font-family: sans-serif;
cursor: move;
padding-top: 2px;
}
.lqs_node_title_text {
padding: 0px 3px;
}
.lqs_node_title_left {
float: left;
}
.lqs_node_title_right {
float: right;
}
.lqs_node_title_left .lqs_tool {
margin-right: 0.2em;
}
.lqs_node_title_right .lqs_tool {
margin-left: 0.2em;
}
.lqs_node_resize {
position: absolute;
right: 0;
bottom: 0;
}
.lqs_node .lqs_tool {
display: none;
}
.lqs_node .lqs_node_empty_title {
display: none;
position: absolute;
width: 100%;
opacity: 0.8;
}
.lqs_node:hover .lqs_node_empty_title {
display: block;
}
.lqs_node_notitle .lqs_node_title {
display: none !important;
}
.lqs_node:hover .lqs_tool {
color: white;
cursor: pointer;
font-size: 100%;
padding: 0px 3px;
display: inline-block;
}
.lqs_node .lqs_tool:hover {
color: #666;
}
.lqs_node_content {
padding: 5px 10px 0px 10px;
color: black;
overflow: auto;
}
.lqs_node.drop-hover {
background-color: #999;
}
.lqs_node.drop-hover .lqs_node_title{
background-color: #666;
}
.lqs_node .lqs_hidden_seed {
display: none;
margin: 0 0.5em;
font-size: 60%;
border-width: 1px;
}
.lqs_node .lqs_hidden_seed::before {
content: '☰';
}
.lqs_node:hover .lqs_hidden_seed {
display: inline-block;
}
.lqs_node .lqs_graph_fold {
display: none;
}
.lqs_node:hover .lqs_graph_fold {
display: inline-block;
}
.lqs_graph_links {
// background-color: #6c6c6c;
}
/* end nodes */
/* SVG */
.lqs_link {
stroke:#666;
stroke-width:2;
opacity: 0.2;
//pointer-events: auto;
}
.lqs_link_from_text {
opacity: 0.6;
text-anchor: middle;
//pointer-events: auto;
}
.lqs_dot circle {
fill: #666;
opacity: 0.6;
pointer-events: auto;
}
.lqs_dot_text {
opacity: 0.6;
text-anchor: middle;
pointer-events: auto;
}
.lqs_icon_text {
opacity: 0.6;
text-anchor: middle;
pointer-events: auto;
}
#axis line {
stroke:#666;
stroke-width:1;
opacity: 0.2;
stroke-dasharray: 4;
}
/* end SVG */
/*meta data table*/
.meta_object, .meta_array {
border-spacing: 2px;
border-collapse: separate;
}
.meta_object th, .meta_object td, .meta_array th, .meta_array td {
background-color: rgb(255,255,255,0.3);
font-size: 10px;
padding: 2px;
}
/* end metadata table */
/* card menu */
.lqs_card_menu {
cursor: default;
position: absolute;
background-color: #666;
color: #fff;
z-index: 500;
border-radius: 10px;
border: solid 1px #f8f0dc;
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
user-select: none;
}
.lqs_card_menu_item {
cursor: pointer;
font-family: sans-serif;
font-size: 10pt;
padding: 2px 15px;
margin: 4px 4px;
border-radius: 5px;
}
.lqs_card_menu_item:hover {
background-color: #fff;
color: #000;
}
.lqs_card_menu_item_disabled {
color: #999;
cursor: default;
}
.lqs_card_menu_item_disabled:hover {
background-color: #000;
color: #999;
}
/* end card menu */
/* custom nodes type: html & text */
.lqs_card_class_html, .lqs_card_class_text {
background-color: rgba(0,0,0,0);
border: solid 1px transparent;
box-shadow: none;
}
.lqs_card_class_html .lqs_node_title, .lqs_card_class_text .lqs_node_title {
background-color: transparent;
color: #333 !important;
}
.lqs_card_class_html a, .lqs_card_class_text a {
color: #00f !important;
}
.lqs_card_class_html:hover .lqs_node_title, .lqs_card_class_text:hover .lqs_node_title {
background-color: #6c6c6c;
color: #fff !important;
}
.lqs_card_class_html:hover, .lqs_card_class_text:hover {
background-color: #cfcfcf;
border: solid 1px #f8f0dc;
box-shadow: 2px 6px 20px 2px rgba(0,0,0,0.1);
}
/* end custom nodes type: html & text */
/* focus view */
.lqs_focus {
position: fixed;
width: 98%;
height: 98%;
top: 1%;
left: 1%;
border: solid 1px #333;
border-radius: 1px;
background-color: #cfcfcf;
z-index: 5000;
box-shadow: 2px 6px 20px 2px rgba(0,0,0,0.1);
}
.lqs_focus_inner {
overflow: auto;
height: 100%;
}
.lqs_focus_close {
position: fixed;
top: 1%;
right: 1%;
padding: 5px 10px;
background-color: #333;
color: #ccc;
font-size: 150%;
opacity: 0.3;
cursor: pointer;
}
.lqs_focus_close:hover {
opacity: 1;
}
.lqs_focus_content {
margin: 1em;
}
.lqs_focus_title {
font-size: 200%;
font-weight: bold;
margin: 10px;
}
.lqs_focus_content a {
color: blue !important;
}
.lqs_focus .lqs_cached {
border: none;
}
.lqs_focus_inner .lqs_graph_fold {
display: none !important;
}
/* end focus view */
/* hacks to tidy mediawiki html for demo. This should be done in API not css */
.infobox,
.metadata,
.vertical-navbox
{
display: none;
}
/* end wikipedia hacks */
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html version="-//W3C//DTD XHTML 1.1//EN" xsi:schemaLocation="http://www.w3.org/1999/xhtml http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd" xml:lang="en" lang="en" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sos="http://www.untiednations.com/SOS" xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8"/>
<!-- This file was created by sos_xml_to_sos_map_xhtml_1.xsl, which is free software licensed under the Apache License 2.0 (see https://gitlab.com/skreutzer/sos-experimential/prototypes/sosmap). -->
<!--
Copyright 2018 Christopher Gutteridge, Stephan Kreutzer
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
The data in the LQS.setLayout() argument is not part of this program,
it's user data that is only processed. A different license may apply.
-->
<title>SOS Map Prototype</title><meta content="initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" name="viewport"/><script type="text/javascript" src="js/jquery-1.12.4.min.js">//</script><script type="text/javascript" src="js/jquery-ui.js">//</script><script type="text/javascript" src="js/jquery.ui.touch-punch.min.js">//</script><script type="text/javascript" src="js/hammer.min.js">//</script><script type="text/javascript" src="js/lqs/core.js">//</script><script type="text/javascript" src="js/lqs/point.js">//</script><script type="text/javascript" src="js/lqs/line.js">//</script><script type="text/javascript" src="js/lqs/node.js">//</script><script type="text/javascript" src="js/lqs/link.js">//</script><script type="text/javascript" src="js/lqs/viewspec.js">//</script><script type="text/javascript" src="js/lqs/node-text.js">//</script><script type="text/javascript" src="js/lqs/node-html.js">//</script><script type="text/javascript" src="js/lqs/node-error.js">//</script><script type="text/javascript" src="js/lqs/node-embed.js">//</script><script type="text/javascript" src="js/lqs/node-cited.js">//</script><link rel="stylesheet" type="text/css" href="css/jquery-ui.css"/><link rel="stylesheet" type="text/css" href="css/sosmap.css"/><script type="text/javascript">
document.addEventListener('DOMContentLoaded', function() {
var lqs = new LQS();
// The data passed as argument to this call is not part of this program, it's user data and might be under a different license than this program. This program also doesn't depend on it or link it as a library, it's merely processed.
lqs.setLayout( {
nodes: [
{id: '1', pos: { x: 0 * 0, y: 0 }, size: { width: 200, height: 200 }, title: 'Risk of the format becoming proprietary because of extension', type: 'text', text: 'If the format (defined as: the potentially copyrightable human expression of coming up with the names and/or their structure as an application programming interface) is extended (defined as: a derived/derivative work), its creator (defined as: the creator of the derivative work, not the creator of the original work on which the derived work is based on) could get the opportunity to release/publish the extended format (derived work) under a new and different license, which may not reflect the intentions and goals of the original author(s) (defined as: William Charlton, and by extension/modification in terms of the creation of a derived work and if copyrightable, Stephan Kreutzer).'},{id: '2', pos: { x: 1 * 0, y: 0 }, size: { width: 200, height: 200 }, title: 'Legal risk could prevent usefulness/adoptability because of uncertain legal status', type: 'text', text: 'If the legal status of the format (defined as: the potentially copyrightable human expression of coming up with the names and/or their structure as an application programming interface) isn’t clearly, explicitly indicated, but the format published somewhere anyway, that could only be because of the following reasons: 1. the author (defined as: William Charlton, and by extension/modifications, if copyrightable, Stephan Kreutzer) assumes that it isn’t copyrightable, 2. the author published it under the legal default of “all rights reserved” (defined as: in most jurisdictions and via Berne Convention, if not limited by special exceptions to copyright), 3. the format is supposed to be only used for local, personal use, as the format was distributed and obtained legally by the author himself, but no license was granted that would allow to extend the use of the format to other users. None of these three options is satisfactory and of no risk, because even if the author assumes 1., it could turn out that this was an incorrect assumption, and then the question is if earlier use by third parties based on this wrong assumption by both author and users is at risk of being seen illegal retrospectively or if the author stops to allow future use, when those questions should have been resolved in advance. Some users may use it without considering/caring about the potential legal risk, they may be covered by the author distributing the file without a license, which can continue to work as long as the publication remains available. Others might not want to use the format because the copyright default or the other options would put them at risk of committing a copyright violation for most reasonable use cases that aren’t entirely personal.'},{id: '3', pos: { x: 2 * 0, y: 0 }, size: { width: 200, height: 200 }, title: 'Legal restrictions could prevent usefulness/adoptability because of proprietary licensing', type: 'text', text: 'If the format (defined as: the potentially copyrightable human expression of coming up with the names and/or their structure as an application programming interface) is restrictively licensed (defined as: proprietary, not granting the user the four essential freedoms of libre-freely licensed software, and by extension their translation to other types of works like protocols/formats), it wouldn’t be integratable into the world of libre-freely licensed software that can be used and developed in independence.'},{id: '4', pos: { x: 3 * 0, y: 0 }, size: { width: 200, height: 200 }, title: 'Legal restrictions could prevent usefulness/adoptability because of libre-freely licensing', type: 'text', text: 'If the format (defined as: the potentially copyrightable human expression of coming up with the names and/or their structure as an application programming interface) is libre-freely licensed (defined as: granting the user the four essential freedoms, and by extension their translation to other types of works like protocols/formats), the restrictions that passively establish the users’ freedom and optionally actively protect/defend them would prevent some users from adoption where they want to do something non-free while not wanting to infringe the libre-free license.'},{id: '5', pos: { x: 4 * 0, y: 0 }, size: { width: 200, height: 200 }, title: 'Copyright Law', type: 'text', text: 'Copyright law applies and is enforced in most given jurisdictions.'},
],
links: [
{label:"causes",id:"connection-5-1",subject:{node:"5"},object:{node:"1"}},{label:"causes",id:"connection-5-2",subject:{node:"5"},object:{node:"2"}},{label:"causes",id:"connection-5-3",subject:{node:"5"},object:{node:"3"}},{label:"causes",id:"connection-5-4",subject:{node:"5"},object:{node:"4"}},