├── webapp
├── src
│ ├── main
│ │ ├── resources
│ │ │ ├── logs
│ │ │ │ └── logTest
│ │ │ ├── .gitignore
│ │ │ ├── graph
│ │ │ │ └── filterTest.graph
│ │ │ └── configs
│ │ │ │ ├── collections.xml
│ │ │ │ └── config.xml
│ │ ├── webapp
│ │ │ ├── css
│ │ │ │ └── index.html
│ │ │ ├── img
│ │ │ │ ├── index.html
│ │ │ │ ├── institutes.png
│ │ │ │ └── updateGraph.png
│ │ │ ├── js
│ │ │ │ ├── index.html
│ │ │ │ ├── app
│ │ │ │ │ ├── app.module.js
│ │ │ │ │ └── app.config.js
│ │ │ │ └── custom.js
│ │ │ ├── views
│ │ │ │ └── error.jsp
│ │ │ ├── partials
│ │ │ │ ├── index.html
│ │ │ │ ├── home.template.jsp
│ │ │ │ └── error.template.jsp
│ │ │ ├── .gitignore
│ │ │ ├── vendor
│ │ │ │ ├── angular
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── angular.min.js.gzip
│ │ │ │ │ ├── bower.json
│ │ │ │ │ ├── angular-csp.css
│ │ │ │ │ ├── .bower.json
│ │ │ │ │ ├── package.json
│ │ │ │ │ ├── LICENSE.md
│ │ │ │ │ └── README.md
│ │ │ │ ├── angular-route
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── bower.json
│ │ │ │ │ ├── .bower.json
│ │ │ │ │ ├── package.json
│ │ │ │ │ └── LICENSE.md
│ │ │ │ ├── angular-cookies
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── bower.json
│ │ │ │ │ ├── .bower.json
│ │ │ │ │ ├── package.json
│ │ │ │ │ ├── LICENSE.md
│ │ │ │ │ └── angular-cookies.min.js
│ │ │ │ ├── angular-sanitize
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── bower.json
│ │ │ │ │ ├── .bower.json
│ │ │ │ │ ├── package.json
│ │ │ │ │ └── LICENSE.md
│ │ │ │ ├── jquery
│ │ │ │ │ ├── src
│ │ │ │ │ │ ├── var
│ │ │ │ │ │ │ ├── arr.js
│ │ │ │ │ │ │ ├── document.js
│ │ │ │ │ │ │ ├── getProto.js
│ │ │ │ │ │ │ ├── concat.js
│ │ │ │ │ │ │ ├── push.js
│ │ │ │ │ │ │ ├── slice.js
│ │ │ │ │ │ │ ├── class2type.js
│ │ │ │ │ │ │ ├── indexOf.js
│ │ │ │ │ │ │ ├── pnum.js
│ │ │ │ │ │ │ ├── fnToString.js
│ │ │ │ │ │ │ ├── toString.js
│ │ │ │ │ │ │ ├── hasOwn.js
│ │ │ │ │ │ │ ├── documentElement.js
│ │ │ │ │ │ │ ├── support.js
│ │ │ │ │ │ │ ├── ObjectFunctionString.js
│ │ │ │ │ │ │ ├── rcssNum.js
│ │ │ │ │ │ │ └── rnothtmlwhite.js
│ │ │ │ │ │ ├── selector.js
│ │ │ │ │ │ ├── .eslintrc.json
│ │ │ │ │ │ ├── ajax
│ │ │ │ │ │ │ ├── var
│ │ │ │ │ │ │ │ ├── rquery.js
│ │ │ │ │ │ │ │ ├── location.js
│ │ │ │ │ │ │ │ └── nonce.js
│ │ │ │ │ │ │ ├── parseXML.js
│ │ │ │ │ │ │ └── load.js
│ │ │ │ │ │ ├── css
│ │ │ │ │ │ │ ├── var
│ │ │ │ │ │ │ │ ├── rmargin.js
│ │ │ │ │ │ │ │ ├── cssExpand.js
│ │ │ │ │ │ │ │ ├── rnumnonpx.js
│ │ │ │ │ │ │ │ ├── getStyles.js
│ │ │ │ │ │ │ │ ├── swap.js
│ │ │ │ │ │ │ │ └── isHiddenWithinTree.js
│ │ │ │ │ │ │ ├── hiddenVisibleSelectors.js
│ │ │ │ │ │ │ ├── addGetHookIf.js
│ │ │ │ │ │ │ ├── curCSS.js
│ │ │ │ │ │ │ └── adjustCSS.js
│ │ │ │ │ │ ├── data
│ │ │ │ │ │ │ └── var
│ │ │ │ │ │ │ │ ├── dataPriv.js
│ │ │ │ │ │ │ │ ├── dataUser.js
│ │ │ │ │ │ │ │ └── acceptData.js
│ │ │ │ │ │ ├── manipulation
│ │ │ │ │ │ │ ├── var
│ │ │ │ │ │ │ │ ├── rcheckableType.js
│ │ │ │ │ │ │ │ ├── rscriptType.js
│ │ │ │ │ │ │ │ └── rtagName.js
│ │ │ │ │ │ │ ├── _evalUrl.js
│ │ │ │ │ │ │ ├── setGlobalEval.js
│ │ │ │ │ │ │ ├── getAll.js
│ │ │ │ │ │ │ ├── wrapMap.js
│ │ │ │ │ │ │ └── support.js
│ │ │ │ │ │ ├── traversing
│ │ │ │ │ │ │ └── var
│ │ │ │ │ │ │ │ ├── rneedsContext.js
│ │ │ │ │ │ │ │ ├── siblings.js
│ │ │ │ │ │ │ │ └── dir.js
│ │ │ │ │ │ ├── core
│ │ │ │ │ │ │ ├── var
│ │ │ │ │ │ │ │ └── rsingleTag.js
│ │ │ │ │ │ │ ├── readyException.js
│ │ │ │ │ │ │ ├── nodeName.js
│ │ │ │ │ │ │ ├── DOMEval.js
│ │ │ │ │ │ │ ├── stripAndCollapse.js
│ │ │ │ │ │ │ ├── support.js
│ │ │ │ │ │ │ ├── access.js
│ │ │ │ │ │ │ └── parseHTML.js
│ │ │ │ │ │ ├── event
│ │ │ │ │ │ │ ├── support.js
│ │ │ │ │ │ │ ├── ajax.js
│ │ │ │ │ │ │ ├── alias.js
│ │ │ │ │ │ │ └── focusin.js
│ │ │ │ │ │ ├── attributes.js
│ │ │ │ │ │ ├── effects
│ │ │ │ │ │ │ └── animatedSelector.js
│ │ │ │ │ │ ├── selector-sizzle.js
│ │ │ │ │ │ ├── deferred
│ │ │ │ │ │ │ └── exceptionHook.js
│ │ │ │ │ │ ├── queue
│ │ │ │ │ │ │ └── delay.js
│ │ │ │ │ │ ├── exports
│ │ │ │ │ │ │ ├── global.js
│ │ │ │ │ │ │ └── amd.js
│ │ │ │ │ │ ├── jquery.js
│ │ │ │ │ │ ├── attributes
│ │ │ │ │ │ │ └── support.js
│ │ │ │ │ │ ├── deprecated.js
│ │ │ │ │ │ ├── wrap.js
│ │ │ │ │ │ └── dimensions.js
│ │ │ │ │ ├── bower.json
│ │ │ │ │ ├── .bower.json
│ │ │ │ │ ├── LICENSE.txt
│ │ │ │ │ └── external
│ │ │ │ │ │ └── sizzle
│ │ │ │ │ │ └── LICENSE.txt
│ │ │ │ ├── bootstrap
│ │ │ │ │ ├── Gemfile
│ │ │ │ │ ├── grunt
│ │ │ │ │ │ ├── .jshintrc
│ │ │ │ │ │ ├── bs-commonjs-generator.js
│ │ │ │ │ │ ├── bs-raw-files-generator.js
│ │ │ │ │ │ ├── bs-glyphicons-data-generator.js
│ │ │ │ │ │ ├── configBridge.json
│ │ │ │ │ │ └── sauce_browsers.yml
│ │ │ │ │ ├── less
│ │ │ │ │ │ ├── mixins
│ │ │ │ │ │ │ ├── center-block.less
│ │ │ │ │ │ │ ├── size.less
│ │ │ │ │ │ │ ├── opacity.less
│ │ │ │ │ │ │ ├── text-emphasis.less
│ │ │ │ │ │ │ ├── text-overflow.less
│ │ │ │ │ │ │ ├── background-variant.less
│ │ │ │ │ │ │ ├── resize.less
│ │ │ │ │ │ │ ├── labels.less
│ │ │ │ │ │ │ ├── progress-bar.less
│ │ │ │ │ │ │ ├── nav-divider.less
│ │ │ │ │ │ │ ├── reset-filter.less
│ │ │ │ │ │ │ ├── alerts.less
│ │ │ │ │ │ │ ├── tab-focus.less
│ │ │ │ │ │ │ ├── nav-vertical-align.less
│ │ │ │ │ │ │ ├── responsive-visibility.less
│ │ │ │ │ │ │ ├── reset-text.less
│ │ │ │ │ │ │ ├── border-radius.less
│ │ │ │ │ │ │ ├── pagination.less
│ │ │ │ │ │ │ ├── panels.less
│ │ │ │ │ │ │ ├── hide-text.less
│ │ │ │ │ │ │ ├── list-group.less
│ │ │ │ │ │ │ ├── clearfix.less
│ │ │ │ │ │ │ ├── table-row.less
│ │ │ │ │ │ │ ├── image.less
│ │ │ │ │ │ │ └── buttons.less
│ │ │ │ │ │ ├── .csslintrc
│ │ │ │ │ │ ├── wells.less
│ │ │ │ │ │ ├── breadcrumbs.less
│ │ │ │ │ │ ├── responsive-embed.less
│ │ │ │ │ │ ├── component-animations.less
│ │ │ │ │ │ ├── close.less
│ │ │ │ │ │ ├── thumbnails.less
│ │ │ │ │ │ ├── utilities.less
│ │ │ │ │ │ ├── pager.less
│ │ │ │ │ │ ├── media.less
│ │ │ │ │ │ ├── mixins.less
│ │ │ │ │ │ ├── labels.less
│ │ │ │ │ │ ├── jumbotron.less
│ │ │ │ │ │ ├── badges.less
│ │ │ │ │ │ ├── bootstrap.less
│ │ │ │ │ │ ├── code.less
│ │ │ │ │ │ ├── grid.less
│ │ │ │ │ │ └── alerts.less
│ │ │ │ │ ├── fonts
│ │ │ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ │ │ ├── glyphicons-halflings-regular.woff
│ │ │ │ │ │ └── glyphicons-halflings-regular.woff2
│ │ │ │ │ ├── dist
│ │ │ │ │ │ ├── fonts
│ │ │ │ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ │ │ │ ├── glyphicons-halflings-regular.woff
│ │ │ │ │ │ │ └── glyphicons-halflings-regular.woff2
│ │ │ │ │ │ └── js
│ │ │ │ │ │ │ └── npm.js
│ │ │ │ │ ├── js
│ │ │ │ │ │ ├── .jshintrc
│ │ │ │ │ │ └── transition.js
│ │ │ │ │ ├── CHANGELOG.md
│ │ │ │ │ ├── nuget
│ │ │ │ │ │ ├── MyGet.ps1
│ │ │ │ │ │ ├── bootstrap.nuspec
│ │ │ │ │ │ └── bootstrap.less.nuspec
│ │ │ │ │ ├── bower.json
│ │ │ │ │ ├── Gemfile.lock
│ │ │ │ │ ├── package.js
│ │ │ │ │ ├── .bower.json
│ │ │ │ │ ├── LICENSE
│ │ │ │ │ └── ISSUE_TEMPLATE.md
│ │ │ │ └── d3
│ │ │ │ │ ├── bower.json
│ │ │ │ │ ├── .bower.json
│ │ │ │ │ ├── README.md
│ │ │ │ │ └── LICENSE
│ │ │ └── WEB-INF
│ │ │ │ ├── web.xml
│ │ │ │ ├── log4j2.xml
│ │ │ │ └── webapp-dispatcher-servlet.xml
│ │ └── java
│ │ │ └── de
│ │ │ └── tudarmstadt
│ │ │ └── ukp
│ │ │ └── exploration
│ │ │ └── graph_doc_explorer
│ │ │ └── webapp
│ │ │ ├── web
│ │ │ └── controllers
│ │ │ │ └── HomeController.java
│ │ │ └── application
│ │ │ ├── domains
│ │ │ ├── Document.java
│ │ │ ├── SearchResponse.java
│ │ │ ├── GraphAPI.java
│ │ │ ├── Collection.java
│ │ │ └── GraphEdgeAPI.java
│ │ │ ├── graph
│ │ │ ├── filter
│ │ │ │ └── IGraphFilter.java
│ │ │ ├── parser
│ │ │ │ ├── IGraphParser.java
│ │ │ │ └── SyntaxErrorException.java
│ │ │ ├── GeneratorsContainer.java
│ │ │ └── FileGraphGenerator.java
│ │ │ └── search
│ │ │ └── ISearcher.java
│ └── test
│ │ ├── resources
│ │ ├── .gitignore
│ │ ├── graph
│ │ │ └── filterTest.graph
│ │ └── configs
│ │ │ ├── collections.xml
│ │ │ └── config.xml
│ │ ├── java
│ │ └── de
│ │ │ └── tudarmstadt
│ │ │ └── ukp
│ │ │ └── exploration
│ │ │ └── graph_doc_explorer
│ │ │ └── webapp
│ │ │ └── application
│ │ │ ├── search
│ │ │ └── SolrSearchHTTPTest.java
│ │ │ ├── configs
│ │ │ └── WebAppConfigurationTest.java
│ │ │ └── graph
│ │ │ ├── DummyGraphGeneratorTest.java
│ │ │ ├── parser
│ │ │ └── SampleDataParserTest.java
│ │ │ └── filter
│ │ │ └── NodesInScopeFilterTest.java
│ │ └── javascript
│ │ └── unit
│ │ └── karma.conf.js
├── .bowerrc
├── jdepend.properties
├── .gitignore
├── package.json
├── bower.json
└── README.md
├── graphs-ne-impl
├── .gitignore
├── pom.xml
├── src
│ ├── main
│ │ └── java
│ │ │ └── de
│ │ │ └── tudarmstadt
│ │ │ └── ukp
│ │ │ └── exploration
│ │ │ └── graph_doc_explorer
│ │ │ └── graphs_ne_impl
│ │ │ └── UimaUtil.java
│ └── test
│ │ └── java
│ │ └── de
│ │ └── tudarmstadt
│ │ └── ukp
│ │ └── exploration
│ │ └── graph_doc_explorer
│ │ └── graph_ne_impl
│ │ └── Test.java
└── README.md
├── indexer
├── .gitignore
├── src
│ ├── main
│ │ └── java
│ │ │ └── de
│ │ │ └── tudarmstadt
│ │ │ └── ukp
│ │ │ └── exploration
│ │ │ └── graph_doc_explorer
│ │ │ └── indexer
│ │ │ ├── application
│ │ │ ├── IDocumentIndexer.java
│ │ │ ├── IArgumentsHandler.java
│ │ │ ├── SolrArgumentsHandler.java
│ │ │ └── SolrIndexer.java
│ │ │ └── config
│ │ │ ├── config.xml
│ │ │ └── log4j2.xml
│ └── test
│ │ └── java
│ │ └── de
│ │ └── tudarmstadt
│ │ └── ukp
│ │ └── exploration
│ │ └── graph_doc_explorer
│ │ └── indexer
│ │ └── application
│ │ └── tests
│ │ ├── SolrIndexerTest.java
│ │ ├── ConfigurationTest.java
│ │ └── SolrArgumentsHandlerTest.java
└── README.md
├── graphs
├── .gitignore
├── README.md
├── pom.xml
└── src
│ └── main
│ └── java
│ └── de
│ └── tudarmstadt
│ └── ukp
│ └── exploration
│ └── graph_doc_explorer
│ └── graphs
│ ├── Label.java
│ ├── Occurrence.java
│ ├── SearchResult.java
│ ├── UpdateQueue.java
│ ├── IGraphGenerator.java
│ ├── LogEntry.java
│ ├── Graph.java
│ └── GraphEdge.java
├── .gitignore
└── NOTICE.txt
/webapp/src/main/resources/logs/logTest:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/css/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/img/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/js/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/views/error.jsp:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/partials/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/webapp/src/main/resources/.gitignore:
--------------------------------------------------------------------------------
1 | /data/
2 |
--------------------------------------------------------------------------------
/webapp/src/test/resources/.gitignore:
--------------------------------------------------------------------------------
1 | /data/
2 |
--------------------------------------------------------------------------------
/webapp/.bowerrc:
--------------------------------------------------------------------------------
1 | {
2 | "directory": "src/main/webapp/vendor"
3 | }
4 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/.gitignore:
--------------------------------------------------------------------------------
1 | # bower files
2 | vendor/*
3 | !vendor
4 | !vendor/index.html
5 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/angular/index.js:
--------------------------------------------------------------------------------
1 | require('./angular');
2 | module.exports = angular;
3 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/angular-route/index.js:
--------------------------------------------------------------------------------
1 | require('./angular-route');
2 | module.exports = 'ngRoute';
3 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/angular-cookies/index.js:
--------------------------------------------------------------------------------
1 | require('./angular-cookies');
2 | module.exports = 'ngCookies';
3 |
--------------------------------------------------------------------------------
/webapp/jdepend.properties:
--------------------------------------------------------------------------------
1 | ignore.java=java.*,javax.*
2 | ignore.sun=sun.*,com.sun.*
3 | ignore.org=org.*
4 | ignore.com=com.*
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/angular-sanitize/index.js:
--------------------------------------------------------------------------------
1 | require('./angular-sanitize');
2 | module.exports = 'ngSanitize';
3 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/var/arr.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | return [];
5 | } );
6 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/js/app/app.module.js:
--------------------------------------------------------------------------------
1 | 'use strict' ;
2 | angular.module('searchApp', ['ngRoute', 'ngSanitize', 'ngCookies']) ;
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/selector.js:
--------------------------------------------------------------------------------
1 | define( [ "./selector-sizzle" ], function() {
2 | "use strict";
3 | } );
4 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "root": true,
3 |
4 | "extends": "../.eslintrc-browser.json"
5 | }
6 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/ajax/var/rquery.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | return ( /\?/ );
5 | } );
6 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/var/document.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | return window.document;
5 | } );
6 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/ajax/var/location.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | return window.location;
5 | } );
6 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/css/var/rmargin.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | return ( /^margin/ );
5 | } );
6 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/img/institutes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UKPLab/emnlp2017-graphdocexplore/HEAD/webapp/src/main/webapp/img/institutes.png
--------------------------------------------------------------------------------
/webapp/src/main/webapp/img/updateGraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UKPLab/emnlp2017-graphdocexplore/HEAD/webapp/src/main/webapp/img/updateGraph.png
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/var/getProto.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | return Object.getPrototypeOf;
5 | } );
6 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/var/concat.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./arr"
3 | ], function( arr ) {
4 | "use strict";
5 |
6 | return arr.concat;
7 | } );
8 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/var/push.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./arr"
3 | ], function( arr ) {
4 | "use strict";
5 |
6 | return arr.push;
7 | } );
8 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/var/slice.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./arr"
3 | ], function( arr ) {
4 | "use strict";
5 |
6 | return arr.slice;
7 | } );
8 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/partials/home.template.jsp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UKPLab/emnlp2017-graphdocexplore/HEAD/webapp/src/main/webapp/partials/home.template.jsp
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/var/class2type.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | // [[Class]] -> type pairs
5 | return {};
6 | } );
7 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/var/indexOf.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./arr"
3 | ], function( arr ) {
4 | "use strict";
5 |
6 | return arr.indexOf;
7 | } );
8 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/css/var/cssExpand.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | return [ "Top", "Right", "Bottom", "Left" ];
5 | } );
6 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/data/var/dataPriv.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../Data"
3 | ], function( Data ) {
4 | "use strict";
5 |
6 | return new Data();
7 | } );
8 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/data/var/dataUser.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../Data"
3 | ], function( Data ) {
4 | "use strict";
5 |
6 | return new Data();
7 | } );
8 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/var/pnum.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | return ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
5 | } );
6 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/ajax/var/nonce.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../../core"
3 | ], function( jQuery ) {
4 | "use strict";
5 |
6 | return jQuery.now();
7 | } );
8 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/manipulation/var/rcheckableType.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | return ( /^(?:checkbox|radio)$/i );
5 | } );
6 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/manipulation/var/rscriptType.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | return ( /^$|\/(?:java|ecma)script/i );
5 | } );
6 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/manipulation/var/rtagName.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | return ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
5 | } );
6 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/var/fnToString.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./hasOwn"
3 | ], function( hasOwn ) {
4 | "use strict";
5 |
6 | return hasOwn.toString;
7 | } );
8 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/angular/angular.min.js.gzip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UKPLab/emnlp2017-graphdocexplore/HEAD/webapp/src/main/webapp/vendor/angular/angular.min.js.gzip
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/var/toString.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./class2type"
3 | ], function( class2type ) {
4 | "use strict";
5 |
6 | return class2type.toString;
7 | } );
8 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/var/hasOwn.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./class2type"
3 | ], function( class2type ) {
4 | "use strict";
5 |
6 | return class2type.hasOwnProperty;
7 | } );
8 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/Gemfile:
--------------------------------------------------------------------------------
1 | source 'https://rubygems.org'
2 |
3 | group :development, :test do
4 | gem 'jekyll', '~> 3.1.2'
5 | gem 'jekyll-sitemap', '~> 0.11.0'
6 | end
7 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/var/documentElement.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./document"
3 | ], function( document ) {
4 | "use strict";
5 |
6 | return document.documentElement;
7 | } );
8 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/var/support.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | // All support tests are defined in their respective modules.
5 | return {};
6 | } );
7 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/grunt/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends" : "../js/.jshintrc",
3 | "asi" : false,
4 | "browser" : false,
5 | "es3" : false,
6 | "node" : true
7 | }
8 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/var/ObjectFunctionString.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./fnToString"
3 | ], function( fnToString ) {
4 | "use strict";
5 |
6 | return fnToString.call( Object );
7 | } );
8 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/mixins/center-block.less:
--------------------------------------------------------------------------------
1 | // Center-align a block level element
2 |
3 | .center-block() {
4 | display: block;
5 | margin-left: auto;
6 | margin-right: auto;
7 | }
8 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/css/var/rnumnonpx.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../../var/pnum"
3 | ], function( pnum ) {
4 | "use strict";
5 |
6 | return new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
7 | } );
8 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/angular/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular",
3 | "version": "1.5.11",
4 | "license": "MIT",
5 | "main": "./angular.js",
6 | "ignore": [],
7 | "dependencies": {
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UKPLab/emnlp2017-graphdocexplore/HEAD/webapp/src/main/webapp/vendor/bootstrap/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UKPLab/emnlp2017-graphdocexplore/HEAD/webapp/src/main/webapp/vendor/bootstrap/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UKPLab/emnlp2017-graphdocexplore/HEAD/webapp/src/main/webapp/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UKPLab/emnlp2017-graphdocexplore/HEAD/webapp/src/main/webapp/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/d3/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "d3",
3 | "description": "A JavaScript visualization library for HTML and SVG.",
4 | "main": "d3.js",
5 | "license": "BSD-3-Clause",
6 | "ignore": []
7 | }
8 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/traversing/var/rneedsContext.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../../core",
3 | "../../selector"
4 | ], function( jQuery ) {
5 | "use strict";
6 |
7 | return jQuery.expr.match.needsContext;
8 | } );
9 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UKPLab/emnlp2017-graphdocexplore/HEAD/webapp/src/main/webapp/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UKPLab/emnlp2017-graphdocexplore/HEAD/webapp/src/main/webapp/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UKPLab/emnlp2017-graphdocexplore/HEAD/webapp/src/main/webapp/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/UKPLab/emnlp2017-graphdocexplore/HEAD/webapp/src/main/webapp/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/core/var/rsingleTag.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | // Match a standalone tag
5 | return ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
6 | } );
7 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/var/rcssNum.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../var/pnum"
3 | ], function( pnum ) {
4 |
5 | "use strict";
6 |
7 | return new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
8 |
9 | } );
10 |
--------------------------------------------------------------------------------
/graphs-ne-impl/.gitignore:
--------------------------------------------------------------------------------
1 | /target/
2 | target/
3 | *.class
4 | *.jar
5 | *.war
6 | *.ear
7 | *.zip
8 | *.tar.gz
9 | *.rar
10 | hs_err_pid*
11 |
12 | .settings/
13 | .externalToolBuilders/
14 | *.launch
15 | .project
16 | .classpath
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/mixins/size.less:
--------------------------------------------------------------------------------
1 | // Sizing shortcuts
2 |
3 | .size(@width; @height) {
4 | width: @width;
5 | height: @height;
6 | }
7 |
8 | .square(@size) {
9 | .size(@size; @size);
10 | }
11 |
--------------------------------------------------------------------------------
/indexer/.gitignore:
--------------------------------------------------------------------------------
1 | /target/
2 | target/
3 | *.class
4 | *.jar
5 | *.war
6 | *.ear
7 | *.zip
8 | *.tar.gz
9 | *.rar
10 | hs_err_pid*
11 |
12 | .settings/
13 | .externalToolBuilders/
14 | *.launch
15 | .project
16 | .classpath
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/mixins/opacity.less:
--------------------------------------------------------------------------------
1 | // Opacity
2 |
3 | .opacity(@opacity) {
4 | opacity: @opacity;
5 | // IE8 filter
6 | @opacity-ie: (@opacity * 100);
7 | filter: ~"alpha(opacity=@{opacity-ie})";
8 | }
9 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/mixins/text-emphasis.less:
--------------------------------------------------------------------------------
1 | // Typography
2 |
3 | .text-emphasis-variant(@color) {
4 | color: @color;
5 | a&:hover,
6 | a&:focus {
7 | color: darken(@color, 10%);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/event/support.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../var/support"
3 | ], function( support ) {
4 |
5 | "use strict";
6 |
7 | support.focusin = "onfocusin" in window;
8 |
9 | return support;
10 |
11 | } );
12 |
--------------------------------------------------------------------------------
/graphs/.gitignore:
--------------------------------------------------------------------------------
1 | /data/
2 | /bin/
3 | target/
4 | *.class
5 | *.jar
6 | *.war
7 | *.ear
8 | *.zip
9 | *.tar.gz
10 | *.rar
11 | hs_err_pid*
12 |
13 | .settings/
14 | .externalToolBuilders/
15 | *.launch
16 | .project
17 | .classpath
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/mixins/text-overflow.less:
--------------------------------------------------------------------------------
1 | // Text overflow
2 | // Requires inline-block or block for proper styling
3 |
4 | .text-overflow() {
5 | overflow: hidden;
6 | text-overflow: ellipsis;
7 | white-space: nowrap;
8 | }
9 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/mixins/background-variant.less:
--------------------------------------------------------------------------------
1 | // Contextual backgrounds
2 |
3 | .bg-variant(@color) {
4 | background-color: @color;
5 | a&:hover,
6 | a&:focus {
7 | background-color: darken(@color, 10%);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/angular-route/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-route",
3 | "version": "1.5.11",
4 | "license": "MIT",
5 | "main": "./angular-route.js",
6 | "ignore": [],
7 | "dependencies": {
8 | "angular": "1.5.11"
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/angular-cookies/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-cookies",
3 | "version": "1.5.11",
4 | "license": "MIT",
5 | "main": "./angular-cookies.js",
6 | "ignore": [],
7 | "dependencies": {
8 | "angular": "1.5.11"
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/mixins/resize.less:
--------------------------------------------------------------------------------
1 | // Resize anything
2 |
3 | .resizable(@direction) {
4 | resize: @direction; // Options: horizontal, vertical, both
5 | overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
6 | }
7 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | #ignore tmp file
2 | .~*
3 | *.swp
4 |
5 | target/
6 | *.class
7 | *.jar
8 | *.war
9 | *.ear
10 | *.zip
11 | *.tar.gz
12 | *.rar
13 | hs_err_pid*
14 |
15 | .settings/
16 | .externalToolBuilders/
17 | *.launch
18 | .project
19 | .classpath
20 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/angular-sanitize/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-sanitize",
3 | "version": "1.5.11",
4 | "license": "MIT",
5 | "main": "./angular-sanitize.js",
6 | "ignore": [],
7 | "dependencies": {
8 | "angular": "1.5.11"
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/mixins/labels.less:
--------------------------------------------------------------------------------
1 | // Labels
2 |
3 | .label-variant(@color) {
4 | background-color: @color;
5 |
6 | &[href] {
7 | &:hover,
8 | &:focus {
9 | background-color: darken(@color, 10%);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/core/readyException.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core"
3 | ], function( jQuery ) {
4 |
5 | "use strict";
6 |
7 | jQuery.readyException = function( error ) {
8 | window.setTimeout( function() {
9 | throw error;
10 | } );
11 | };
12 |
13 | } );
14 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jquery",
3 | "main": "dist/jquery.js",
4 | "license": "MIT",
5 | "ignore": [
6 | "package.json"
7 | ],
8 | "keywords": [
9 | "jquery",
10 | "javascript",
11 | "browser",
12 | "library"
13 | ]
14 | }
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/core/nodeName.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 |
3 | "use strict";
4 |
5 | function nodeName( elem, name ) {
6 |
7 | return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
8 |
9 | };
10 |
11 | return nodeName;
12 |
13 | } );
14 |
--------------------------------------------------------------------------------
/webapp/src/main/resources/graph/filterTest.graph:
--------------------------------------------------------------------------------
1 | nodes
2 | 1000 Alex a.txt;1;2
3 | 1001 Arwed b.txt;3;4
4 | 1002 Ramy b.txt;5;6|a.txt;9;10
5 | 1003 Basti a.txt;7;8
6 | edges
7 | 1000 1001 is related to
8 | 1001 1002 is related to
9 | 1002 1003 is related to
10 | 1000 1002 is related to
--------------------------------------------------------------------------------
/indexer/src/main/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/indexer/application/IDocumentIndexer.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.indexer.application;
2 |
3 | public interface IDocumentIndexer {
4 | public void indexDocuments(IArgumentsHandler handler) ;
5 | }
6 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/mixins/progress-bar.less:
--------------------------------------------------------------------------------
1 | // Progress bars
2 |
3 | .progress-bar-variant(@color) {
4 | background-color: @color;
5 |
6 | // Deprecated parent class requirement as of v3.2.0
7 | .progress-striped & {
8 | #gradient > .striped();
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/webapp/src/test/resources/graph/filterTest.graph:
--------------------------------------------------------------------------------
1 | nodes
2 | 1000 Alex a.txt;1;2
3 | 1001 Arwed b.txt;3;4
4 | 1002 Ramy b.txt;5;6|a.txt;9;10
5 | 1003 Basti a.txt;7;8
6 | edges
7 | 1000 1001 is related to
8 | 1001 1002 is related to
9 | 1002 1003 is related to
10 | 1000 1002 is related to
11 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/var/rnothtmlwhite.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | // Only count HTML whitespace
5 | // Other whitespace should count in values
6 | // https://html.spec.whatwg.org/multipage/infrastructure.html#space-character
7 | return ( /[^\x20\t\r\n\f]+/g );
8 | } );
9 |
--------------------------------------------------------------------------------
/graphs/README.md:
--------------------------------------------------------------------------------
1 | # Graph-based Document Exploration
2 | ## graphs module
3 |
4 | This module contains Java data structures to store graphs with nodes and edges and their corresponding spans in documents they were extracted from. Both the webapp and all graph extraction modules use these data structures.
5 |
6 |
7 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/attributes.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./core",
3 | "./attributes/attr",
4 | "./attributes/prop",
5 | "./attributes/classes",
6 | "./attributes/val"
7 | ], function( jQuery ) {
8 |
9 | "use strict";
10 |
11 | // Return jQuery for attributes-only inclusion
12 | return jQuery;
13 | } );
14 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/mixins/nav-divider.less:
--------------------------------------------------------------------------------
1 | // Horizontal dividers
2 | //
3 | // Dividers (basically an hr) within dropdowns and nav lists
4 |
5 | .nav-divider(@color: #e5e5e5) {
6 | height: 1px;
7 | margin: ((@line-height-computed / 2) - 1) 0;
8 | overflow: hidden;
9 | background-color: @color;
10 | }
11 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/mixins/reset-filter.less:
--------------------------------------------------------------------------------
1 | // Reset filters for IE
2 | //
3 | // When you need to remove a gradient background, do not forget to use this to reset
4 | // the IE filter for IE9 and below.
5 |
6 | .reset-filter() {
7 | filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)"));
8 | }
9 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/traversing/var/siblings.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 |
3 | "use strict";
4 |
5 | return function( n, elem ) {
6 | var matched = [];
7 |
8 | for ( ; n; n = n.nextSibling ) {
9 | if ( n.nodeType === 1 && n !== elem ) {
10 | matched.push( n );
11 | }
12 | }
13 |
14 | return matched;
15 | };
16 |
17 | } );
18 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/effects/animatedSelector.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../selector",
4 | "../effects"
5 | ], function( jQuery ) {
6 |
7 | "use strict";
8 |
9 | jQuery.expr.pseudos.animated = function( elem ) {
10 | return jQuery.grep( jQuery.timers, function( fn ) {
11 | return elem === fn.elem;
12 | } ).length;
13 | };
14 |
15 | } );
16 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/mixins/alerts.less:
--------------------------------------------------------------------------------
1 | // Alerts
2 |
3 | .alert-variant(@background; @border; @text-color) {
4 | background-color: @background;
5 | border-color: @border;
6 | color: @text-color;
7 |
8 | hr {
9 | border-top-color: darken(@border, 5%);
10 | }
11 | .alert-link {
12 | color: darken(@text-color, 10%);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/js/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "asi" : true,
3 | "browser" : true,
4 | "eqeqeq" : false,
5 | "eqnull" : true,
6 | "es3" : true,
7 | "expr" : true,
8 | "jquery" : true,
9 | "latedef" : true,
10 | "laxbreak" : true,
11 | "nonbsp" : true,
12 | "strict" : true,
13 | "undef" : true,
14 | "unused" : true
15 | }
16 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/core/DOMEval.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../var/document"
3 | ], function( document ) {
4 | "use strict";
5 |
6 | function DOMEval( code, doc ) {
7 | doc = doc || document;
8 |
9 | var script = doc.createElement( "script" );
10 |
11 | script.text = code;
12 | doc.head.appendChild( script ).parentNode.removeChild( script );
13 | }
14 |
15 | return DOMEval;
16 | } );
17 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/mixins/tab-focus.less:
--------------------------------------------------------------------------------
1 | // WebKit-style focus
2 |
3 | .tab-focus() {
4 | // WebKit-specific. Other browsers will keep their default outline style.
5 | // (Initially tried to also force default via `outline: initial`,
6 | // but that seems to erroneously remove the outline in Firefox altogether.)
7 | outline: 5px auto -webkit-focus-ring-color;
8 | outline-offset: -2px;
9 | }
10 |
--------------------------------------------------------------------------------
/NOTICE.txt:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------------------------
2 | Copyright 2017
3 | Ubiquitous Knowledge Processing (UKP) Lab
4 | Technische Universität Darmstadt
5 |
6 | -------------------------------------------------------------------------------
7 | Third party legal information
8 |
9 | Please see the corresponding README and LICENSE files available in
10 | webapp/src/main/webapp/vendor
11 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/css/hiddenVisibleSelectors.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../selector"
4 | ], function( jQuery ) {
5 |
6 | "use strict";
7 |
8 | jQuery.expr.pseudos.hidden = function( elem ) {
9 | return !jQuery.expr.pseudos.visible( elem );
10 | };
11 | jQuery.expr.pseudos.visible = function( elem ) {
12 | return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
13 | };
14 |
15 | } );
16 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/data/var/acceptData.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 |
3 | "use strict";
4 |
5 | /**
6 | * Determines whether an object can have data
7 | */
8 | return function( owner ) {
9 |
10 | // Accepts only:
11 | // - Node
12 | // - Node.ELEMENT_NODE
13 | // - Node.DOCUMENT_NODE
14 | // - Object
15 | // - Any
16 | return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
17 | };
18 |
19 | } );
20 |
--------------------------------------------------------------------------------
/webapp/src/test/resources/configs/collections.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/mixins/nav-vertical-align.less:
--------------------------------------------------------------------------------
1 | // Navbar vertical align
2 | //
3 | // Vertically center elements in the navbar.
4 | // Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.
5 |
6 | .navbar-vertical-align(@element-height) {
7 | margin-top: ((@navbar-height - @element-height) / 2);
8 | margin-bottom: ((@navbar-height - @element-height) / 2);
9 | }
10 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | Bootstrap uses [GitHub's Releases feature](https://github.com/blog/1547-release-your-software) for its changelogs.
2 |
3 | See [the Releases section of our GitHub project](https://github.com/twbs/bootstrap/releases) for changelogs for each release version of Bootstrap.
4 |
5 | Release announcement posts on [the official Bootstrap blog](http://blog.getbootstrap.com) contain summaries of the most noteworthy changes made in each release.
6 |
--------------------------------------------------------------------------------
/webapp/.gitignore:
--------------------------------------------------------------------------------
1 | script*
2 |
3 | #ignore the target/ directory
4 | target/
5 |
6 | #ignore MacOSX files
7 | .DS_Store
8 |
9 | #ignore node repo
10 | node/
11 | node_modules/
12 | etc/
13 |
14 | # ignore the report directory
15 | src/test/javascript/reports/*
16 |
17 | *.class
18 | *.jar
19 | *.war
20 | *.ear
21 | *.zip
22 | *.tar.gz
23 | *.rar
24 | hs_err_pid*
25 |
26 | .settings/
27 | .externalToolBuilders/
28 | *.launch
29 | .project
30 | .classpath
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/angular/angular-csp.css:
--------------------------------------------------------------------------------
1 | /* Include this file in your html if you are using the CSP mode. */
2 |
3 | @charset "UTF-8";
4 |
5 | [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak],
6 | .ng-cloak, .x-ng-cloak,
7 | .ng-hide:not(.ng-hide-animate) {
8 | display: none !important;
9 | }
10 |
11 | ng\:form {
12 | display: block;
13 | }
14 |
15 | .ng-animate-shim {
16 | visibility:hidden;
17 | }
18 |
19 | .ng-anchor {
20 | position:absolute;
21 | }
22 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/mixins/responsive-visibility.less:
--------------------------------------------------------------------------------
1 | // Responsive utilities
2 |
3 | //
4 | // More easily include all the states for responsive-utilities.less.
5 | .responsive-visibility() {
6 | display: block !important;
7 | table& { display: table !important; }
8 | tr& { display: table-row !important; }
9 | th&,
10 | td& { display: table-cell !important; }
11 | }
12 |
13 | .responsive-invisibility() {
14 | display: none !important;
15 | }
16 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/event/ajax.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../event"
4 | ], function( jQuery ) {
5 |
6 | "use strict";
7 |
8 | // Attach a bunch of functions for handling common AJAX events
9 | jQuery.each( [
10 | "ajaxStart",
11 | "ajaxStop",
12 | "ajaxComplete",
13 | "ajaxError",
14 | "ajaxSuccess",
15 | "ajaxSend"
16 | ], function( i, type ) {
17 | jQuery.fn[ type ] = function( fn ) {
18 | return this.on( type, fn );
19 | };
20 | } );
21 |
22 | } );
23 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/core/stripAndCollapse.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../var/rnothtmlwhite"
3 | ], function( rnothtmlwhite ) {
4 | "use strict";
5 |
6 | // Strip and collapse whitespace according to HTML spec
7 | // https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace
8 | function stripAndCollapse( value ) {
9 | var tokens = value.match( rnothtmlwhite ) || [];
10 | return tokens.join( " " );
11 | }
12 |
13 | return stripAndCollapse;
14 | } );
15 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/manipulation/_evalUrl.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../ajax"
3 | ], function( jQuery ) {
4 |
5 | "use strict";
6 |
7 | jQuery._evalUrl = function( url ) {
8 | return jQuery.ajax( {
9 | url: url,
10 |
11 | // Make this explicit, since user can override this through ajaxSetup (#11264)
12 | type: "GET",
13 | dataType: "script",
14 | cache: true,
15 | async: false,
16 | global: false,
17 | "throws": true
18 | } );
19 | };
20 |
21 | return jQuery._evalUrl;
22 |
23 | } );
24 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/css/var/getStyles.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 | "use strict";
3 |
4 | return function( elem ) {
5 |
6 | // Support: IE <=11 only, Firefox <=30 (#15098, #14150)
7 | // IE throws on elements created in popups
8 | // FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
9 | var view = elem.ownerDocument.defaultView;
10 |
11 | if ( !view || !view.opener ) {
12 | view = window;
13 | }
14 |
15 | return view.getComputedStyle( elem );
16 | };
17 | } );
18 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/traversing/var/dir.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../../core"
3 | ], function( jQuery ) {
4 |
5 | "use strict";
6 |
7 | return function( elem, dir, until ) {
8 | var matched = [],
9 | truncate = until !== undefined;
10 |
11 | while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
12 | if ( elem.nodeType === 1 ) {
13 | if ( truncate && jQuery( elem ).is( until ) ) {
14 | break;
15 | }
16 | matched.push( elem );
17 | }
18 | }
19 | return matched;
20 | };
21 |
22 | } );
23 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/nuget/MyGet.ps1:
--------------------------------------------------------------------------------
1 | $nuget = $env:NuGet
2 |
3 | # parse the version number out of package.json
4 | $bsversion = ((Get-Content $env:SourcesPath\package.json) -join "`n" | ConvertFrom-Json).version
5 |
6 | # create packages
7 | & $nuget pack "nuget\bootstrap.nuspec" -Verbosity detailed -NonInteractive -NoPackageAnalysis -BasePath $env:SourcesPath -Version $bsversion
8 | & $nuget pack "nuget\bootstrap.less.nuspec" -Verbosity detailed -NonInteractive -NoPackageAnalysis -BasePath $env:SourcesPath -Version $bsversion
9 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/manipulation/setGlobalEval.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../data/var/dataPriv"
3 | ], function( dataPriv ) {
4 |
5 | "use strict";
6 |
7 | // Mark scripts as having already been evaluated
8 | function setGlobalEval( elems, refElements ) {
9 | var i = 0,
10 | l = elems.length;
11 |
12 | for ( ; i < l; i++ ) {
13 | dataPriv.set(
14 | elems[ i ],
15 | "globalEval",
16 | !refElements || dataPriv.get( refElements[ i ], "globalEval" )
17 | );
18 | }
19 | }
20 |
21 | return setGlobalEval;
22 | } );
23 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/selector-sizzle.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./core",
3 | "../external/sizzle/dist/sizzle"
4 | ], function( jQuery, Sizzle ) {
5 |
6 | "use strict";
7 |
8 | jQuery.find = Sizzle;
9 | jQuery.expr = Sizzle.selectors;
10 |
11 | // Deprecated
12 | jQuery.expr[ ":" ] = jQuery.expr.pseudos;
13 | jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
14 | jQuery.text = Sizzle.getText;
15 | jQuery.isXMLDoc = Sizzle.isXML;
16 | jQuery.contains = Sizzle.contains;
17 | jQuery.escapeSelector = Sizzle.escape;
18 |
19 | } );
20 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/angular/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular",
3 | "version": "1.5.11",
4 | "license": "MIT",
5 | "main": "./angular.js",
6 | "ignore": [],
7 | "dependencies": {},
8 | "homepage": "https://github.com/angular/bower-angular",
9 | "_release": "1.5.11",
10 | "_resolution": {
11 | "type": "version",
12 | "tag": "v1.5.11",
13 | "commit": "0f57428c3ffe2f486264ab7fbee3968dccc7b720"
14 | },
15 | "_source": "https://github.com/angular/bower-angular.git",
16 | "_target": "1.5.x",
17 | "_originalSource": "angular"
18 | }
--------------------------------------------------------------------------------
/indexer/src/test/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/indexer/application/tests/SolrIndexerTest.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.indexer.application.tests ;
2 | import static org.junit.Assert.*;
3 |
4 | import org.junit.Before;
5 | import org.junit.Test;
6 |
7 | public class SolrIndexerTest {
8 |
9 | @Before
10 | public void setUp() throws Exception {
11 | }
12 |
13 | @Test
14 | public void test() {
15 | System.out.println("Not yet implemented");
16 | assertTrue(true) ;
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/dist/js/npm.js:
--------------------------------------------------------------------------------
1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.
2 | require('../../js/transition.js')
3 | require('../../js/alert.js')
4 | require('../../js/button.js')
5 | require('../../js/carousel.js')
6 | require('../../js/collapse.js')
7 | require('../../js/dropdown.js')
8 | require('../../js/modal.js')
9 | require('../../js/tooltip.js')
10 | require('../../js/popover.js')
11 | require('../../js/scrollspy.js')
12 | require('../../js/tab.js')
13 | require('../../js/affix.js')
--------------------------------------------------------------------------------
/indexer/src/test/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/indexer/application/tests/ConfigurationTest.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.indexer.application.tests;
2 |
3 | import static org.junit.Assert.*;
4 |
5 | import org.junit.Before;
6 | import org.junit.Ignore;
7 | import org.junit.Test;
8 |
9 | public class ConfigurationTest {
10 |
11 | @Before
12 | public void setUp() throws Exception {
13 | }
14 |
15 | @Test
16 | @Ignore
17 | public void test() {
18 | fail("Not yet implemented");
19 | }
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/.csslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "adjoining-classes": false,
3 | "box-sizing": false,
4 | "box-model": false,
5 | "compatible-vendor-prefixes": false,
6 | "floats": false,
7 | "font-sizes": false,
8 | "gradients": false,
9 | "important": false,
10 | "known-properties": false,
11 | "outline-none": false,
12 | "qualified-headings": false,
13 | "regex-selectors": false,
14 | "shorthand": false,
15 | "text-indent": false,
16 | "unique-headings": false,
17 | "universal-selector": false,
18 | "unqualified-attributes": false
19 | }
20 |
--------------------------------------------------------------------------------
/indexer/src/test/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/indexer/application/tests/SolrArgumentsHandlerTest.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.indexer.application.tests;
2 |
3 | import static org.junit.Assert.*;
4 |
5 | import org.junit.Before;
6 | import org.junit.Ignore;
7 | import org.junit.Test;
8 |
9 | public class SolrArgumentsHandlerTest {
10 |
11 | @Before
12 | public void setUp() throws Exception {
13 | }
14 |
15 | @Test
16 | @Ignore
17 | public void test() {
18 | fail("Not yet implemented");
19 | }
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/graphs/pom.xml:
--------------------------------------------------------------------------------
1 |
2 | 4.0.0
3 |
4 |
5 | de.tudarmstadt.ukp.exploration
6 | graph-doc-explorer
7 | 0.0.1-SNAPSHOT
8 |
9 |
10 | graph-doc-explorer.graphs
11 | common data structures
12 | jar
13 |
14 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/mixins/reset-text.less:
--------------------------------------------------------------------------------
1 | .reset-text() {
2 | font-family: @font-family-base;
3 | // We deliberately do NOT reset font-size.
4 | font-style: normal;
5 | font-weight: normal;
6 | letter-spacing: normal;
7 | line-break: auto;
8 | line-height: @line-height-base;
9 | text-align: left; // Fallback for where `start` is not supported
10 | text-align: start;
11 | text-decoration: none;
12 | text-shadow: none;
13 | text-transform: none;
14 | white-space: normal;
15 | word-break: normal;
16 | word-spacing: normal;
17 | word-wrap: normal;
18 | }
19 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/d3/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "d3",
3 | "description": "A JavaScript visualization library for HTML and SVG.",
4 | "main": "d3.js",
5 | "license": "BSD-3-Clause",
6 | "ignore": [],
7 | "homepage": "https://github.com/mbostock-bower/d3-bower",
8 | "version": "3.5.17",
9 | "_release": "3.5.17",
10 | "_resolution": {
11 | "type": "version",
12 | "tag": "v3.5.17",
13 | "commit": "abe0262a205c9f3755c3a757de4dfd1d49f34b24"
14 | },
15 | "_source": "https://github.com/mbostock-bower/d3-bower.git",
16 | "_target": "3.x",
17 | "_originalSource": "d3"
18 | }
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/mixins/border-radius.less:
--------------------------------------------------------------------------------
1 | // Single side border-radius
2 |
3 | .border-top-radius(@radius) {
4 | border-top-right-radius: @radius;
5 | border-top-left-radius: @radius;
6 | }
7 | .border-right-radius(@radius) {
8 | border-bottom-right-radius: @radius;
9 | border-top-right-radius: @radius;
10 | }
11 | .border-bottom-radius(@radius) {
12 | border-bottom-right-radius: @radius;
13 | border-bottom-left-radius: @radius;
14 | }
15 | .border-left-radius(@radius) {
16 | border-bottom-left-radius: @radius;
17 | border-top-left-radius: @radius;
18 | }
19 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/angular-route/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-route",
3 | "version": "1.5.11",
4 | "license": "MIT",
5 | "main": "./angular-route.js",
6 | "ignore": [],
7 | "dependencies": {
8 | "angular": "1.5.11"
9 | },
10 | "homepage": "https://github.com/angular/bower-angular-route",
11 | "_release": "1.5.11",
12 | "_resolution": {
13 | "type": "version",
14 | "tag": "v1.5.11",
15 | "commit": "cdb9db456ece8b3f80a638bb7bd69dc2dcd4eee9"
16 | },
17 | "_source": "https://github.com/angular/bower-angular-route.git",
18 | "_target": "1.5.x",
19 | "_originalSource": "angular-route"
20 | }
--------------------------------------------------------------------------------
/webapp/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "graph-doc-explorer",
3 | "private": true,
4 | "version": "1.0.0",
5 | "description": "Graph-based Document Exploration",
6 | "license": "Apache 2.0",
7 | "devDependencies": {
8 | "bower": "^1.8.0",
9 | "angular-mocks": "1.5.x",
10 | "jasmine-core": "2.x.x",
11 | "karma": "~1.0.0",
12 | "karma-jasmine": "^1.0.2",
13 | "karma-chrome-launcher": "",
14 | "karma-junit-reporter": "^0.2.2"
15 | },
16 | "scripts": {
17 | "pretest": "bower install",
18 | "prestart": "npm install",
19 | "test": "karma start src/test/javascript/unit/karma.conf.js --single-run"
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/angular-cookies/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-cookies",
3 | "version": "1.5.11",
4 | "license": "MIT",
5 | "main": "./angular-cookies.js",
6 | "ignore": [],
7 | "dependencies": {
8 | "angular": "1.5.11"
9 | },
10 | "homepage": "https://github.com/angular/bower-angular-cookies",
11 | "_release": "1.5.11",
12 | "_resolution": {
13 | "type": "version",
14 | "tag": "v1.5.11",
15 | "commit": "a443bb1d7edc1688acf8d820932f27b4b19b89bc"
16 | },
17 | "_source": "https://github.com/angular/bower-angular-cookies.git",
18 | "_target": "1.5.x",
19 | "_originalSource": "angular-cookies"
20 | }
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/mixins/pagination.less:
--------------------------------------------------------------------------------
1 | // Pagination
2 |
3 | .pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
4 | > li {
5 | > a,
6 | > span {
7 | padding: @padding-vertical @padding-horizontal;
8 | font-size: @font-size;
9 | line-height: @line-height;
10 | }
11 | &:first-child {
12 | > a,
13 | > span {
14 | .border-left-radius(@border-radius);
15 | }
16 | }
17 | &:last-child {
18 | > a,
19 | > span {
20 | .border-right-radius(@border-radius);
21 | }
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/indexer/src/main/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/indexer/config/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/angular-sanitize/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-sanitize",
3 | "version": "1.5.11",
4 | "license": "MIT",
5 | "main": "./angular-sanitize.js",
6 | "ignore": [],
7 | "dependencies": {
8 | "angular": "1.5.11"
9 | },
10 | "homepage": "https://github.com/angular/bower-angular-sanitize",
11 | "_release": "1.5.11",
12 | "_resolution": {
13 | "type": "version",
14 | "tag": "v1.5.11",
15 | "commit": "84df06c4ec4f1eef7f9d0b849b9fdf5433c2669c"
16 | },
17 | "_source": "https://github.com/angular/bower-angular-sanitize.git",
18 | "_target": "1.5.x",
19 | "_originalSource": "angular-sanitize"
20 | }
--------------------------------------------------------------------------------
/webapp/src/main/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/webapp/web/controllers/HomeController.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.webapp.web.controllers;
2 |
3 | import org.springframework.stereotype.Controller;
4 | import org.springframework.ui.ModelMap;
5 | import org.springframework.web.bind.annotation.RequestMapping;
6 | import org.springframework.web.bind.annotation.RequestMethod;
7 |
8 | @Controller
9 | @RequestMapping("/")
10 | public class HomeController {
11 | @RequestMapping(value = "/", method = RequestMethod.GET)
12 | public String index(ModelMap model) {
13 | return "index";
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jquery",
3 | "main": "dist/jquery.js",
4 | "license": "MIT",
5 | "ignore": [
6 | "package.json"
7 | ],
8 | "keywords": [
9 | "jquery",
10 | "javascript",
11 | "browser",
12 | "library"
13 | ],
14 | "homepage": "https://github.com/jquery/jquery-dist",
15 | "version": "3.2.1",
16 | "_release": "3.2.1",
17 | "_resolution": {
18 | "type": "version",
19 | "tag": "3.2.1",
20 | "commit": "77d2a51d0520d2ee44173afdf4e40a9201f5964e"
21 | },
22 | "_source": "https://github.com/jquery/jquery-dist.git",
23 | "_target": "1.9.1 - 3",
24 | "_originalSource": "jquery"
25 | }
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/css/var/swap.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 |
3 | "use strict";
4 |
5 | // A method for quickly swapping in/out CSS properties to get correct calculations.
6 | return function( elem, options, callback, args ) {
7 | var ret, name,
8 | old = {};
9 |
10 | // Remember the old values, and insert the new ones
11 | for ( name in options ) {
12 | old[ name ] = elem.style[ name ];
13 | elem.style[ name ] = options[ name ];
14 | }
15 |
16 | ret = callback.apply( elem, args || [] );
17 |
18 | // Revert the old values
19 | for ( name in options ) {
20 | elem.style[ name ] = old[ name ];
21 | }
22 |
23 | return ret;
24 | };
25 |
26 | } );
27 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/mixins/panels.less:
--------------------------------------------------------------------------------
1 | // Panels
2 |
3 | .panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {
4 | border-color: @border;
5 |
6 | & > .panel-heading {
7 | color: @heading-text-color;
8 | background-color: @heading-bg-color;
9 | border-color: @heading-border;
10 |
11 | + .panel-collapse > .panel-body {
12 | border-top-color: @border;
13 | }
14 | .badge {
15 | color: @heading-bg-color;
16 | background-color: @heading-text-color;
17 | }
18 | }
19 | & > .panel-footer {
20 | + .panel-collapse > .panel-body {
21 | border-bottom-color: @border;
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/css/addGetHookIf.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 |
3 | "use strict";
4 |
5 | function addGetHookIf( conditionFn, hookFn ) {
6 |
7 | // Define the hook, we'll check on the first run if it's really needed.
8 | return {
9 | get: function() {
10 | if ( conditionFn() ) {
11 |
12 | // Hook not needed (or it's not possible to use it due
13 | // to missing dependency), remove it.
14 | delete this.get;
15 | return;
16 | }
17 |
18 | // Hook needed; redefine it so that the support test is not executed again.
19 | return ( this.get = hookFn ).apply( this, arguments );
20 | }
21 | };
22 | }
23 |
24 | return addGetHookIf;
25 |
26 | } );
27 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/wells.less:
--------------------------------------------------------------------------------
1 | //
2 | // Wells
3 | // --------------------------------------------------
4 |
5 |
6 | // Base class
7 | .well {
8 | min-height: 20px;
9 | padding: 19px;
10 | margin-bottom: 20px;
11 | background-color: @well-bg;
12 | border: 1px solid @well-border;
13 | border-radius: @border-radius-base;
14 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
15 | blockquote {
16 | border-color: #ddd;
17 | border-color: rgba(0,0,0,.15);
18 | }
19 | }
20 |
21 | // Sizes
22 | .well-lg {
23 | padding: 24px;
24 | border-radius: @border-radius-large;
25 | }
26 | .well-sm {
27 | padding: 9px;
28 | border-radius: @border-radius-small;
29 | }
30 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/mixins/hide-text.less:
--------------------------------------------------------------------------------
1 | // CSS image replacement
2 | //
3 | // Heads up! v3 launched with only `.hide-text()`, but per our pattern for
4 | // mixins being reused as classes with the same name, this doesn't hold up. As
5 | // of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.
6 | //
7 | // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
8 |
9 | // Deprecated as of v3.0.1 (has been removed in v4)
10 | .hide-text() {
11 | font: ~"0/0" a;
12 | color: transparent;
13 | text-shadow: none;
14 | background-color: transparent;
15 | border: 0;
16 | }
17 |
18 | // New mixin to use as of v3.0.1
19 | .text-hide() {
20 | .hide-text();
21 | }
22 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/partials/error.template.jsp:
--------------------------------------------------------------------------------
1 |
14 |
15 |
16 |

18 |
19 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/angular/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular",
3 | "version": "1.5.11",
4 | "description": "HTML enhanced for web apps",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "repository": {
10 | "type": "git",
11 | "url": "https://github.com/angular/angular.js.git"
12 | },
13 | "keywords": [
14 | "angular",
15 | "framework",
16 | "browser",
17 | "client-side"
18 | ],
19 | "author": "Angular Core Team ",
20 | "license": "MIT",
21 | "bugs": {
22 | "url": "https://github.com/angular/angular.js/issues"
23 | },
24 | "homepage": "http://angularjs.org"
25 | }
26 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/mixins/list-group.less:
--------------------------------------------------------------------------------
1 | // List Groups
2 |
3 | .list-group-item-variant(@state; @background; @color) {
4 | .list-group-item-@{state} {
5 | color: @color;
6 | background-color: @background;
7 |
8 | a&,
9 | button& {
10 | color: @color;
11 |
12 | .list-group-item-heading {
13 | color: inherit;
14 | }
15 |
16 | &:hover,
17 | &:focus {
18 | color: @color;
19 | background-color: darken(@background, 5%);
20 | }
21 | &.active,
22 | &.active:hover,
23 | &.active:focus {
24 | color: #fff;
25 | background-color: @color;
26 | border-color: @color;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/ajax/parseXML.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core"
3 | ], function( jQuery ) {
4 |
5 | "use strict";
6 |
7 | // Cross-browser xml parsing
8 | jQuery.parseXML = function( data ) {
9 | var xml;
10 | if ( !data || typeof data !== "string" ) {
11 | return null;
12 | }
13 |
14 | // Support: IE 9 - 11 only
15 | // IE throws on parseFromString with invalid input.
16 | try {
17 | xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
18 | } catch ( e ) {
19 | xml = undefined;
20 | }
21 |
22 | if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
23 | jQuery.error( "Invalid XML: " + data );
24 | }
25 | return xml;
26 | };
27 |
28 | return jQuery.parseXML;
29 |
30 | } );
31 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/mixins/clearfix.less:
--------------------------------------------------------------------------------
1 | // Clearfix
2 | //
3 | // For modern browsers
4 | // 1. The space content is one way to avoid an Opera bug when the
5 | // contenteditable attribute is included anywhere else in the document.
6 | // Otherwise it causes space to appear at the top and bottom of elements
7 | // that are clearfixed.
8 | // 2. The use of `table` rather than `block` is only necessary if using
9 | // `:before` to contain the top-margins of child elements.
10 | //
11 | // Source: http://nicolasgallagher.com/micro-clearfix-hack/
12 |
13 | .clearfix() {
14 | &:before,
15 | &:after {
16 | content: " "; // 1
17 | display: table; // 2
18 | }
19 | &:after {
20 | clear: both;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/breadcrumbs.less:
--------------------------------------------------------------------------------
1 | //
2 | // Breadcrumbs
3 | // --------------------------------------------------
4 |
5 |
6 | .breadcrumb {
7 | padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;
8 | margin-bottom: @line-height-computed;
9 | list-style: none;
10 | background-color: @breadcrumb-bg;
11 | border-radius: @border-radius-base;
12 |
13 | > li {
14 | display: inline-block;
15 |
16 | + li:before {
17 | content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space
18 | padding: 0 5px;
19 | color: @breadcrumb-color;
20 | }
21 | }
22 |
23 | > .active {
24 | color: @breadcrumb-active-color;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/responsive-embed.less:
--------------------------------------------------------------------------------
1 | // Embeds responsive
2 | //
3 | // Credit: Nicolas Gallagher and SUIT CSS.
4 |
5 | .embed-responsive {
6 | position: relative;
7 | display: block;
8 | height: 0;
9 | padding: 0;
10 | overflow: hidden;
11 |
12 | .embed-responsive-item,
13 | iframe,
14 | embed,
15 | object,
16 | video {
17 | position: absolute;
18 | top: 0;
19 | left: 0;
20 | bottom: 0;
21 | height: 100%;
22 | width: 100%;
23 | border: 0;
24 | }
25 | }
26 |
27 | // Modifier class for 16:9 aspect ratio
28 | .embed-responsive-16by9 {
29 | padding-bottom: 56.25%;
30 | }
31 |
32 | // Modifier class for 4:3 aspect ratio
33 | .embed-responsive-4by3 {
34 | padding-bottom: 75%;
35 | }
36 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/core/support.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../var/document",
3 | "../var/support"
4 | ], function( document, support ) {
5 |
6 | "use strict";
7 |
8 | // Support: Safari 8 only
9 | // In Safari 8 documents created via document.implementation.createHTMLDocument
10 | // collapse sibling forms: the second one becomes a child of the first one.
11 | // Because of that, this security measure has to be disabled in Safari 8.
12 | // https://bugs.webkit.org/show_bug.cgi?id=137337
13 | support.createHTMLDocument = ( function() {
14 | var body = document.implementation.createHTMLDocument( "" ).body;
15 | body.innerHTML = "";
16 | return body.childNodes.length === 2;
17 | } )();
18 |
19 | return support;
20 | } );
21 |
--------------------------------------------------------------------------------
/indexer/src/main/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/indexer/config/log4j2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/deferred/exceptionHook.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../deferred"
4 | ], function( jQuery ) {
5 |
6 | "use strict";
7 |
8 | // These usually indicate a programmer mistake during development,
9 | // warn about them ASAP rather than swallowing them by default.
10 | var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
11 |
12 | jQuery.Deferred.exceptionHook = function( error, stack ) {
13 |
14 | // Support: IE 8 - 9 only
15 | // Console exists when dev tools are open, which can happen at any time
16 | if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
17 | window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
18 | }
19 | };
20 |
21 | } );
22 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/queue/delay.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../queue",
4 | "../effects" // Delay is optional because of this dependency
5 | ], function( jQuery ) {
6 |
7 | "use strict";
8 |
9 | // Based off of the plugin by Clint Helfers, with permission.
10 | // https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
11 | jQuery.fn.delay = function( time, type ) {
12 | time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
13 | type = type || "fx";
14 |
15 | return this.queue( type, function( next, hooks ) {
16 | var timeout = window.setTimeout( next, time );
17 | hooks.stop = function() {
18 | window.clearTimeout( timeout );
19 | };
20 | } );
21 | };
22 |
23 | return jQuery.fn.delay;
24 | } );
25 |
--------------------------------------------------------------------------------
/webapp/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "graph-doc-explorer",
3 | "version": "1.0.0",
4 | "description": "Graph-based Document Exploration",
5 | "keywords": [
6 | "search",
7 | "documents"
8 | ],
9 | "license": "Apache 2.0",
10 | "private": true,
11 | "ignore": [
12 | "**/.*",
13 | "node_modules",
14 | "bower_components",
15 | "src/main/webapp/vendor",
16 | "test",
17 | "tests"
18 | ],
19 | "dependencies": {
20 | "angular": "1.5.x",
21 | "d3": "3.x",
22 | "bootstrap": "3.3.x",
23 | "angular-route": "1.5.x",
24 | "angular-sanitize": "1.5.x",
25 | "angular-cookies": "1.5.x"
26 | },
27 | "main": "src/main/webapp/views/index.jsp"
28 | }
29 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/exports/global.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core"
3 | ], function( jQuery, noGlobal ) {
4 |
5 | "use strict";
6 |
7 | var
8 |
9 | // Map over jQuery in case of overwrite
10 | _jQuery = window.jQuery,
11 |
12 | // Map over the $ in case of overwrite
13 | _$ = window.$;
14 |
15 | jQuery.noConflict = function( deep ) {
16 | if ( window.$ === jQuery ) {
17 | window.$ = _$;
18 | }
19 |
20 | if ( deep && window.jQuery === jQuery ) {
21 | window.jQuery = _jQuery;
22 | }
23 |
24 | return jQuery;
25 | };
26 |
27 | // Expose jQuery and $ identifiers, even in AMD
28 | // (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
29 | // and CommonJS for browser emulators (#13566)
30 | if ( !noGlobal ) {
31 | window.jQuery = window.$ = jQuery;
32 | }
33 |
34 | } );
35 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/event/alias.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 |
4 | "../event",
5 | "./trigger"
6 | ], function( jQuery ) {
7 |
8 | "use strict";
9 |
10 | jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
11 | "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
12 | "change select submit keydown keypress keyup contextmenu" ).split( " " ),
13 | function( i, name ) {
14 |
15 | // Handle event binding
16 | jQuery.fn[ name ] = function( data, fn ) {
17 | return arguments.length > 0 ?
18 | this.on( name, null, data, fn ) :
19 | this.trigger( name );
20 | };
21 | } );
22 |
23 | jQuery.fn.extend( {
24 | hover: function( fnOver, fnOut ) {
25 | return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
26 | }
27 | } );
28 |
29 | } );
30 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "bootstrap",
3 | "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.",
4 | "keywords": [
5 | "css",
6 | "js",
7 | "less",
8 | "mobile-first",
9 | "responsive",
10 | "front-end",
11 | "framework",
12 | "web"
13 | ],
14 | "homepage": "http://getbootstrap.com",
15 | "license": "MIT",
16 | "moduleType": "globals",
17 | "main": [
18 | "less/bootstrap.less",
19 | "dist/js/bootstrap.js"
20 | ],
21 | "ignore": [
22 | "/.*",
23 | "_config.yml",
24 | "CNAME",
25 | "composer.json",
26 | "CONTRIBUTING.md",
27 | "docs",
28 | "js/tests",
29 | "test-infra"
30 | ],
31 | "dependencies": {
32 | "jquery": "1.9.1 - 3"
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/manipulation/getAll.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../core/nodeName"
4 | ], function( jQuery, nodeName ) {
5 |
6 | "use strict";
7 |
8 | function getAll( context, tag ) {
9 |
10 | // Support: IE <=9 - 11 only
11 | // Use typeof to avoid zero-argument method invocation on host objects (#15151)
12 | var ret;
13 |
14 | if ( typeof context.getElementsByTagName !== "undefined" ) {
15 | ret = context.getElementsByTagName( tag || "*" );
16 |
17 | } else if ( typeof context.querySelectorAll !== "undefined" ) {
18 | ret = context.querySelectorAll( tag || "*" );
19 |
20 | } else {
21 | ret = [];
22 | }
23 |
24 | if ( tag === undefined || tag && nodeName( context, tag ) ) {
25 | return jQuery.merge( [ context ], ret );
26 | }
27 |
28 | return ret;
29 | }
30 |
31 | return getAll;
32 | } );
33 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/jquery.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./core",
3 | "./selector",
4 | "./traversing",
5 | "./callbacks",
6 | "./deferred",
7 | "./deferred/exceptionHook",
8 | "./core/ready",
9 | "./data",
10 | "./queue",
11 | "./queue/delay",
12 | "./attributes",
13 | "./event",
14 | "./event/alias",
15 | "./event/focusin",
16 | "./manipulation",
17 | "./manipulation/_evalUrl",
18 | "./wrap",
19 | "./css",
20 | "./css/hiddenVisibleSelectors",
21 | "./serialize",
22 | "./ajax",
23 | "./ajax/xhr",
24 | "./ajax/script",
25 | "./ajax/jsonp",
26 | "./ajax/load",
27 | "./event/ajax",
28 | "./effects",
29 | "./effects/animatedSelector",
30 | "./offset",
31 | "./dimensions",
32 | "./deprecated",
33 | "./exports/amd",
34 | "./exports/global"
35 | ], function( jQuery ) {
36 |
37 | "use strict";
38 |
39 | return jQuery;
40 |
41 | } );
42 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/component-animations.less:
--------------------------------------------------------------------------------
1 | //
2 | // Component animations
3 | // --------------------------------------------------
4 |
5 | // Heads up!
6 | //
7 | // We don't use the `.opacity()` mixin here since it causes a bug with text
8 | // fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.
9 |
10 | .fade {
11 | opacity: 0;
12 | .transition(opacity .15s linear);
13 | &.in {
14 | opacity: 1;
15 | }
16 | }
17 |
18 | .collapse {
19 | display: none;
20 |
21 | &.in { display: block; }
22 | tr&.in { display: table-row; }
23 | tbody&.in { display: table-row-group; }
24 | }
25 |
26 | .collapsing {
27 | position: relative;
28 | height: 0;
29 | overflow: hidden;
30 | .transition-property(~"height, visibility");
31 | .transition-duration(.35s);
32 | .transition-timing-function(ease);
33 | }
34 |
--------------------------------------------------------------------------------
/indexer/README.md:
--------------------------------------------------------------------------------
1 | # Graph-based Document Exploration
2 | ## indexer module
3 |
4 | This module contains a simple command-line tool to index a document collection in Solr as needed for the application.
5 |
6 | ### Build
7 |
8 | Maven will create an executable jar of this module that can be used from a command prompt.
9 |
10 | ### Usage
11 |
12 | The executable can be invoked as follows:
13 |
14 | * `document-indexer `
15 |
16 | An example for the `config.xml` can be found in `de/tudarmstadt/ukp/exploration/graph_doc_explorer/indexer/config/config.xml`.
17 |
18 | Please make sure that
19 | * the config.xml points to the correct core of your solr installation
20 | * the webapp's collection.xml refers to the collection with the name defined here during indexing as the third parameter
21 |
22 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/js/app/app.config.js:
--------------------------------------------------------------------------------
1 | 'use strict' ;
2 |
3 | angular.module('searchApp').config(['$locationProvider', '$routeProvider',
4 | function config($locationProvider, $routeProvider) {
5 | $locationProvider.hashPrefix('!');
6 | $routeProvider.
7 | when('/', {
8 | templateUrl :'partials/home.template.jsp',
9 | controller: 'HomeController'
10 | }).
11 | when('/error', {
12 | templateUrl : 'partials/error.template.jsp',
13 | controller: 'ErrorController'
14 | }).
15 | when('/search/:groupID/:searchwords', {
16 | templateUrl: 'partials/results.template.jsp',
17 | reloadOnSearch: false,
18 | controller: 'ResultsController'
19 | }).
20 | otherwise({
21 | redirectTo: '/error'
22 | });
23 | }
24 | ]);
--------------------------------------------------------------------------------
/webapp/src/main/webapp/js/custom.js:
--------------------------------------------------------------------------------
1 | function fix_height(jQuery) {
2 | (function($){
3 |
4 | var height = 0;
5 | height = Math.ceil($(window).height() - $('footer').height() - $('#search-field-wrapper').height() ) - 120; // $('header').height()
6 |
7 | var titleOffset = 50 ;
8 | $('#results-wrapper').height(height);
9 |
10 | $('#document-wrapper').height(height);
11 | $('#document-wrapper .document-container').height(height-titleOffset);
12 |
13 | $('#graph-container').height(height);
14 |
15 | })(jQuery);
16 |
17 |
18 | }
19 |
20 | /**
21 | * get maximum height for search results
22 | * @param jQuery
23 | * @returns
24 | */
25 | function hide_header(jQuery) {
26 | $('header').css('display', 'none');
27 | }
28 |
29 | function show_header(jQuery) {
30 | $('header').css('display', '') ;
31 | }
32 |
33 |
34 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/mixins/table-row.less:
--------------------------------------------------------------------------------
1 | // Tables
2 |
3 | .table-row-variant(@state; @background) {
4 | // Exact selectors below required to override `.table-striped` and prevent
5 | // inheritance to nested tables.
6 | .table > thead > tr,
7 | .table > tbody > tr,
8 | .table > tfoot > tr {
9 | > td.@{state},
10 | > th.@{state},
11 | &.@{state} > td,
12 | &.@{state} > th {
13 | background-color: @background;
14 | }
15 | }
16 |
17 | // Hover states for `.table-hover`
18 | // Note: this is not available for cells or rows within `thead` or `tfoot`.
19 | .table-hover > tbody > tr {
20 | > td.@{state}:hover,
21 | > th.@{state}:hover,
22 | &.@{state}:hover > td,
23 | &:hover > .@{state},
24 | &.@{state}:hover > th {
25 | background-color: darken(@background, 5%);
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/angular-route/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-route",
3 | "version": "1.5.11",
4 | "description": "AngularJS router module",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "repository": {
10 | "type": "git",
11 | "url": "https://github.com/angular/angular.js.git"
12 | },
13 | "keywords": [
14 | "angular",
15 | "framework",
16 | "browser",
17 | "router",
18 | "client-side"
19 | ],
20 | "author": "Angular Core Team ",
21 | "license": "MIT",
22 | "bugs": {
23 | "url": "https://github.com/angular/angular.js/issues"
24 | },
25 | "homepage": "http://angularjs.org",
26 | "jspm": {
27 | "shim": {
28 | "angular-route": {
29 | "deps": ["angular"]
30 | }
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/WEB-INF/web.xml:
--------------------------------------------------------------------------------
1 |
5 | Graph-based Document Exploration
6 |
7 |
8 | webapp-dispatcher
9 | org.springframework.web.servlet.DispatcherServlet
10 | 1
11 |
12 |
13 | webapp-dispatcher
14 | /
15 | /api
16 |
17 |
18 | 404
19 | /views/error.jsp
20 |
21 |
22 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/angular-cookies/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-cookies",
3 | "version": "1.5.11",
4 | "description": "AngularJS module for cookies",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "repository": {
10 | "type": "git",
11 | "url": "https://github.com/angular/angular.js.git"
12 | },
13 | "keywords": [
14 | "angular",
15 | "framework",
16 | "browser",
17 | "cookies",
18 | "client-side"
19 | ],
20 | "author": "Angular Core Team ",
21 | "license": "MIT",
22 | "bugs": {
23 | "url": "https://github.com/angular/angular.js/issues"
24 | },
25 | "homepage": "http://angularjs.org",
26 | "jspm": {
27 | "shim": {
28 | "angular-cookies": {
29 | "deps": ["angular"]
30 | }
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/webapp/src/main/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/webapp/application/domains/Document.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.webapp.application.domains;
2 |
3 | /**
4 | * A domain class for the text document
5 | *
6 | * @author Alexander Gössl, Arwed Gölz, Ramy Hcini, Sebastian Vollbrecht
7 | * @since 20 Jan 2017
8 | * @version 1.0
9 | */
10 |
11 | public class Document {
12 | private String id;
13 | private String text;
14 | private Collection collection;
15 |
16 | public Document(String _id, String _text, Collection _collection) {
17 | id = _id;
18 | text = _text;
19 | collection = _collection;
20 | }
21 |
22 | public String id() {
23 | return id;
24 | }
25 |
26 | public String text() {
27 | return text;
28 | }
29 |
30 | public Collection collection() {
31 | return collection;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/angular-sanitize/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-sanitize",
3 | "version": "1.5.11",
4 | "description": "AngularJS module for sanitizing HTML",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "repository": {
10 | "type": "git",
11 | "url": "https://github.com/angular/angular.js.git"
12 | },
13 | "keywords": [
14 | "angular",
15 | "framework",
16 | "browser",
17 | "html",
18 | "client-side"
19 | ],
20 | "author": "Angular Core Team ",
21 | "license": "MIT",
22 | "bugs": {
23 | "url": "https://github.com/angular/angular.js/issues"
24 | },
25 | "homepage": "http://angularjs.org",
26 | "jspm": {
27 | "shim": {
28 | "angular-sanitize": {
29 | "deps": ["angular"]
30 | }
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/webapp/src/test/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/webapp/application/search/SolrSearchHTTPTest.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.webapp.application.search;
2 |
3 | import static org.junit.Assert.assertEquals;
4 |
5 | import java.util.LinkedList;
6 |
7 | import org.junit.Ignore;
8 | import org.junit.Test;
9 |
10 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs.SearchResult;
11 |
12 | public class SolrSearchHTTPTest {
13 |
14 | LinkedList searchResults = new LinkedList();
15 |
16 | @Test
17 | @Ignore
18 | public void testSetup() {
19 | // ISearcher logic has changed. this test is depercated
20 | ISearcher search = new SolrSearchHTTP();
21 | searchResults.addAll(search.query("Howard Metzenbaum", "organisation"));
22 | assertEquals(8, searchResults.size());
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/webapp/src/test/resources/configs/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/graphs/src/main/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/graphs/Label.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs;
2 |
3 | import java.util.ArrayList;
4 | import java.util.List;
5 |
6 | /**
7 | * Domain class modeling the Label
8 | *
9 | * @author Alexander Gössl, Arwed Gölz, Ramy Hcini, Sebastian Vollbrecht
10 | * @since 30 Jan 2017
11 | * @version 1.0
12 | */
13 | public class Label {
14 | private String l;
15 | private List occurrences;
16 |
17 | public Label(String _l, List _occurrences) {
18 | l = _l;
19 | occurrences = _occurrences;
20 | }
21 |
22 | public Label(String _l) {
23 | l = _l;
24 | occurrences = new ArrayList();
25 | }
26 |
27 | public String label() {
28 | return l;
29 | }
30 |
31 | public List occurrences() {
32 | return occurrences;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/webapp/src/main/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/webapp/application/graph/filter/IGraphFilter.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.webapp.application.graph.filter;
2 |
3 | import java.util.List;
4 |
5 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs.Graph;
6 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs.SearchResult;
7 |
8 | /**
9 | * Interface for a graph filter
10 | *
11 | * @author Alexander Gössl, Arwed Gölz, Ramy Hcini, Sebastian Vollbrecht
12 | * @since 20 Jan 2017
13 | * @version 1.0
14 | */
15 |
16 | @Deprecated
17 | public interface IGraphFilter {
18 | /**
19 | * Filter the Graph using the search results
20 | *
21 | * @param searchResults
22 | * @param g
23 | * : graph
24 | * @return a filtered Graph
25 | */
26 | public Graph filter(List searchResults, Graph g);
27 | }
28 |
--------------------------------------------------------------------------------
/webapp/src/main/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/webapp/application/graph/parser/IGraphParser.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.webapp.application.graph.parser;
2 |
3 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs.Graph;
4 |
5 | /**
6 | * IGraphParser is the interface used to parse a graph from an input source
7 | *
8 | * @author Ramy Hcini
9 | * @since 22 Dec 2016
10 | * @version 1.0
11 | */
12 | @Deprecated
13 | public interface IGraphParser {
14 |
15 | /**
16 | * Parses an entire graph input, verifying that it contains a valid graph's
17 | * definition.
18 | *
19 | * @return true if the file was parsed successfully
20 | *
21 | */
22 | public boolean parse();
23 |
24 | /**
25 | * Returns the graph which was built during parsing.
26 | *
27 | * @return the graph
28 | */
29 | public abstract Graph getGraph();
30 | }
31 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/close.less:
--------------------------------------------------------------------------------
1 | //
2 | // Close icons
3 | // --------------------------------------------------
4 |
5 |
6 | .close {
7 | float: right;
8 | font-size: (@font-size-base * 1.5);
9 | font-weight: @close-font-weight;
10 | line-height: 1;
11 | color: @close-color;
12 | text-shadow: @close-text-shadow;
13 | .opacity(.2);
14 |
15 | &:hover,
16 | &:focus {
17 | color: @close-color;
18 | text-decoration: none;
19 | cursor: pointer;
20 | .opacity(.5);
21 | }
22 |
23 | // Additional properties for button version
24 | // iOS requires the button element instead of an anchor tag.
25 | // If you want the anchor version, it requires `href="#"`.
26 | // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
27 | button& {
28 | padding: 0;
29 | cursor: pointer;
30 | background: transparent;
31 | border: 0;
32 | -webkit-appearance: none;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/thumbnails.less:
--------------------------------------------------------------------------------
1 | //
2 | // Thumbnails
3 | // --------------------------------------------------
4 |
5 |
6 | // Mixin and adjust the regular image class
7 | .thumbnail {
8 | display: block;
9 | padding: @thumbnail-padding;
10 | margin-bottom: @line-height-computed;
11 | line-height: @line-height-base;
12 | background-color: @thumbnail-bg;
13 | border: 1px solid @thumbnail-border;
14 | border-radius: @thumbnail-border-radius;
15 | .transition(border .2s ease-in-out);
16 |
17 | > img,
18 | a > img {
19 | &:extend(.img-responsive);
20 | margin-left: auto;
21 | margin-right: auto;
22 | }
23 |
24 | // Add a hover state for linked versions only
25 | a&:hover,
26 | a&:focus,
27 | a&.active {
28 | border-color: @link-color;
29 | }
30 |
31 | // Image captions
32 | .caption {
33 | padding: @thumbnail-caption-padding;
34 | color: @thumbnail-caption-color;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/webapp/src/main/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/webapp/application/graph/GeneratorsContainer.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.webapp.application.graph;
2 |
3 | import java.util.HashMap;
4 | import java.util.Map;
5 |
6 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs.IGraphGenerator;
7 |
8 | public class GeneratorsContainer {
9 |
10 | static private Map generators = new HashMap();
11 |
12 | public static void put(String id, IGraphGenerator g) {
13 | generators.put(id, g);
14 | }
15 |
16 | public static IGraphGenerator get(String id) {
17 | System.out.println(generators.get(id));
18 | return generators.get(id);
19 | }
20 |
21 | public static boolean have(String id) {
22 | return generators.containsKey(id);
23 | }
24 |
25 | public static void remove(String id) {
26 | generators.remove(id);
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/manipulation/wrapMap.js:
--------------------------------------------------------------------------------
1 | define( function() {
2 |
3 | "use strict";
4 |
5 | // We have to close these tags to support XHTML (#13200)
6 | var wrapMap = {
7 |
8 | // Support: IE <=9 only
9 | option: [ 1, "" ],
10 |
11 | // XHTML parsers do not magically insert elements in the
12 | // same way that tag soup parsers do. So we cannot shorten
13 | // this by omitting or other required elements.
14 | thead: [ 1, "" ],
15 | col: [ 2, "" ],
16 | tr: [ 2, "" ],
17 | td: [ 3, "" ],
18 |
19 | _default: [ 0, "", "" ]
20 | };
21 |
22 | // Support: IE <=9 only
23 | wrapMap.optgroup = wrapMap.option;
24 |
25 | wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
26 | wrapMap.th = wrapMap.td;
27 |
28 | return wrapMap;
29 | } );
30 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/attributes/support.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../var/document",
3 | "../var/support"
4 | ], function( document, support ) {
5 |
6 | "use strict";
7 |
8 | ( function() {
9 | var input = document.createElement( "input" ),
10 | select = document.createElement( "select" ),
11 | opt = select.appendChild( document.createElement( "option" ) );
12 |
13 | input.type = "checkbox";
14 |
15 | // Support: Android <=4.3 only
16 | // Default value for a checkbox should be "on"
17 | support.checkOn = input.value !== "";
18 |
19 | // Support: IE <=11 only
20 | // Must access selectedIndex to make default options select
21 | support.optSelected = opt.selected;
22 |
23 | // Support: IE <=11 only
24 | // An input loses its value after becoming a radio
25 | input = document.createElement( "input" );
26 | input.value = "t";
27 | input.type = "radio";
28 | support.radioValue = input.value === "t";
29 | } )();
30 |
31 | return support;
32 |
33 | } );
34 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/d3/README.md:
--------------------------------------------------------------------------------
1 | # Data-Driven Documents
2 |
3 |
4 |
5 | **D3.js** is a JavaScript library for manipulating documents based on data. **D3** helps you bring data to life using HTML, SVG, and CSS. **D3** emphasizes web standards and combines powerful visualization components with a data-driven approach to DOM manipulation, giving you the full capabilities of modern browsers without tying yourself to a proprietary framework.
6 |
7 | Want to learn more? [See the wiki.](https://github.com/mbostock/d3/wiki)
8 |
9 | For examples, [see the gallery](https://github.com/mbostock/d3/wiki/Gallery) and [mbostock’s bl.ocks](http://bl.ocks.org/mbostock).
10 |
11 | ## Good News, Everyone!
12 |
13 | The next major release of D3, 4.0, is coming! See the [4.0 development branch](https://github.com/mbostock/d3/tree/4) and read the [new API reference](https://github.com/mbostock/d3/blob/4/README.md) to get ready.
14 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/deprecated.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./core",
3 | "./core/nodeName"
4 | ], function( jQuery, nodeName ) {
5 |
6 | "use strict";
7 |
8 | jQuery.fn.extend( {
9 |
10 | bind: function( types, data, fn ) {
11 | return this.on( types, null, data, fn );
12 | },
13 | unbind: function( types, fn ) {
14 | return this.off( types, null, fn );
15 | },
16 |
17 | delegate: function( selector, types, data, fn ) {
18 | return this.on( types, selector, data, fn );
19 | },
20 | undelegate: function( selector, types, fn ) {
21 |
22 | // ( namespace ) or ( selector, types [, fn] )
23 | return arguments.length === 1 ?
24 | this.off( selector, "**" ) :
25 | this.off( types, selector || "**", fn );
26 | }
27 | } );
28 |
29 | jQuery.holdReady = function( hold ) {
30 | if ( hold ) {
31 | jQuery.readyWait++;
32 | } else {
33 | jQuery.ready( true );
34 | }
35 | };
36 | jQuery.isArray = Array.isArray;
37 | jQuery.parseJSON = JSON.parse;
38 | jQuery.nodeName = nodeName;
39 |
40 | } );
41 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/utilities.less:
--------------------------------------------------------------------------------
1 | //
2 | // Utility classes
3 | // --------------------------------------------------
4 |
5 |
6 | // Floats
7 | // -------------------------
8 |
9 | .clearfix {
10 | .clearfix();
11 | }
12 | .center-block {
13 | .center-block();
14 | }
15 | .pull-right {
16 | float: right !important;
17 | }
18 | .pull-left {
19 | float: left !important;
20 | }
21 |
22 |
23 | // Toggling content
24 | // -------------------------
25 |
26 | // Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1
27 | .hide {
28 | display: none !important;
29 | }
30 | .show {
31 | display: block !important;
32 | }
33 | .invisible {
34 | visibility: hidden;
35 | }
36 | .text-hide {
37 | .text-hide();
38 | }
39 |
40 |
41 | // Hide from screenreaders and browsers
42 | //
43 | // Credit: HTML5 Boilerplate
44 |
45 | .hidden {
46 | display: none !important;
47 | }
48 |
49 |
50 | // For Affix plugin
51 | // -------------------------
52 |
53 | .affix {
54 | position: fixed;
55 | }
56 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/Gemfile.lock:
--------------------------------------------------------------------------------
1 | GEM
2 | remote: https://rubygems.org/
3 | specs:
4 | addressable (2.4.0)
5 | colorator (0.1)
6 | ffi (1.9.14-x64-mingw32)
7 | jekyll (3.1.6)
8 | colorator (~> 0.1)
9 | jekyll-sass-converter (~> 1.0)
10 | jekyll-watch (~> 1.1)
11 | kramdown (~> 1.3)
12 | liquid (~> 3.0)
13 | mercenary (~> 0.3.3)
14 | rouge (~> 1.7)
15 | safe_yaml (~> 1.0)
16 | jekyll-sass-converter (1.4.0)
17 | sass (~> 3.4)
18 | jekyll-sitemap (0.11.0)
19 | addressable (~> 2.4.0)
20 | jekyll-watch (1.4.0)
21 | listen (~> 3.0, < 3.1)
22 | kramdown (1.11.1)
23 | liquid (3.0.6)
24 | listen (3.0.8)
25 | rb-fsevent (~> 0.9, >= 0.9.4)
26 | rb-inotify (~> 0.9, >= 0.9.7)
27 | mercenary (0.3.6)
28 | rb-fsevent (0.9.7)
29 | rb-inotify (0.9.7)
30 | ffi (>= 0.5.0)
31 | rouge (1.11.1)
32 | safe_yaml (1.0.4)
33 | sass (3.4.22)
34 |
35 | PLATFORMS
36 | x64-mingw32
37 |
38 | DEPENDENCIES
39 | jekyll (~> 3.1.2)
40 | jekyll-sitemap (~> 0.11.0)
41 |
42 | BUNDLED WITH
43 | 1.12.5
44 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/package.js:
--------------------------------------------------------------------------------
1 | // package metadata file for Meteor.js
2 |
3 | /* jshint strict:false */
4 | /* global Package:true */
5 |
6 | Package.describe({
7 | name: 'twbs:bootstrap', // http://atmospherejs.com/twbs/bootstrap
8 | summary: 'The most popular front-end framework for developing responsive, mobile first projects on the web.',
9 | version: '3.3.7',
10 | git: 'https://github.com/twbs/bootstrap.git'
11 | });
12 |
13 | Package.onUse(function (api) {
14 | api.versionsFrom('METEOR@1.0');
15 | api.use('jquery', 'client');
16 | var assets = [
17 | 'dist/fonts/glyphicons-halflings-regular.eot',
18 | 'dist/fonts/glyphicons-halflings-regular.svg',
19 | 'dist/fonts/glyphicons-halflings-regular.ttf',
20 | 'dist/fonts/glyphicons-halflings-regular.woff',
21 | 'dist/fonts/glyphicons-halflings-regular.woff2'
22 | ];
23 | if (api.addAssets) {
24 | api.addAssets(assets, 'client');
25 | } else {
26 | api.addFiles(assets, 'client', { isAsset: true });
27 | }
28 | api.addFiles([
29 | 'dist/css/bootstrap.css',
30 | 'dist/js/bootstrap.js'
31 | ], 'client');
32 | });
33 |
--------------------------------------------------------------------------------
/webapp/src/test/javascript/unit/karma.conf.js:
--------------------------------------------------------------------------------
1 | module.exports = function(config){
2 | config.set({
3 | reporters: ['progress', 'junit'],
4 | basePath : '../../../',
5 |
6 | files : [
7 | 'main/webapp/vendor/jquery/dist/jquery.min.js',
8 | 'main/webapp/vendor/angular/**.min.js',
9 | 'main/webapp/vendor/angular-route/**.min.js',
10 | 'main/webapp/vendor/angular-cookies/**.min.js',
11 | 'main/webapp/vendor/angular-sanitize/**.min.js',
12 | 'main/webapp/vendor/d3/**.min.js',
13 | '../node_modules/angular-mocks/angular-mocks.js',
14 |
15 | 'main/webapp/js/app/app.module.js',
16 | 'main/webapp/js/app/app.*.js',
17 | 'main/webapp/js/*.js',
18 |
19 | 'test/javascript/unit/*.tests.js'
20 | ],
21 |
22 | autoWatch : true,
23 |
24 | frameworks: ['jasmine'],
25 |
26 | browsers : ['Chrome'],
27 |
28 | plugins : [
29 | 'karma-chrome-launcher',
30 | 'karma-jasmine',
31 | 'karma-junit-reporter'
32 | ],
33 |
34 | junitReporter : {
35 | outputFile: 'test/javascript/reports/unit.xml',
36 | suite: 'unit'
37 | }
38 |
39 | });
40 | };
41 |
--------------------------------------------------------------------------------
/graphs/src/main/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/graphs/Occurrence.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs;
2 |
3 | /**
4 | * Class that models the occurences of a label node in the documents
5 | *
6 | * @author Alexander Gössl, Arwed Gölz, Ramy Hcini, Sebastian Vollbrecht
7 | * @since 20 Jan 2017
8 | * @version 1.2
9 | */
10 |
11 | public class Occurrence {
12 | private int begin;
13 | private int end;
14 | private String docID;
15 |
16 | /**
17 | * The ONE AND ONLY usable contructor
18 | *
19 | * @param _begin
20 | * the begin of the occurence in the document
21 | * @param _end
22 | * the end of the occurence in the document
23 | * @param _doc
24 | * the document ID
25 | */
26 | public Occurrence(int _begin, int _end, String _doc) {
27 | begin = _begin;
28 | end = _end;
29 | docID = _doc;
30 | }
31 |
32 | public int begin() {
33 | return begin;
34 | }
35 |
36 | public int end() {
37 | return end;
38 | }
39 |
40 | public String docID() {
41 | return docID;
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "bootstrap",
3 | "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.",
4 | "keywords": [
5 | "css",
6 | "js",
7 | "less",
8 | "mobile-first",
9 | "responsive",
10 | "front-end",
11 | "framework",
12 | "web"
13 | ],
14 | "homepage": "http://getbootstrap.com",
15 | "license": "MIT",
16 | "moduleType": "globals",
17 | "main": [
18 | "less/bootstrap.less",
19 | "dist/js/bootstrap.js"
20 | ],
21 | "ignore": [
22 | "/.*",
23 | "_config.yml",
24 | "CNAME",
25 | "composer.json",
26 | "CONTRIBUTING.md",
27 | "docs",
28 | "js/tests",
29 | "test-infra"
30 | ],
31 | "dependencies": {
32 | "jquery": "1.9.1 - 3"
33 | },
34 | "version": "3.3.7",
35 | "_release": "3.3.7",
36 | "_resolution": {
37 | "type": "version",
38 | "tag": "v3.3.7",
39 | "commit": "0b9c4a4007c44201dce9a6cc1a38407005c26c86"
40 | },
41 | "_source": "https://github.com/twbs/bootstrap.git",
42 | "_target": "3.3.x",
43 | "_originalSource": "bootstrap"
44 | }
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/pager.less:
--------------------------------------------------------------------------------
1 | //
2 | // Pager pagination
3 | // --------------------------------------------------
4 |
5 |
6 | .pager {
7 | padding-left: 0;
8 | margin: @line-height-computed 0;
9 | list-style: none;
10 | text-align: center;
11 | &:extend(.clearfix all);
12 | li {
13 | display: inline;
14 | > a,
15 | > span {
16 | display: inline-block;
17 | padding: 5px 14px;
18 | background-color: @pager-bg;
19 | border: 1px solid @pager-border;
20 | border-radius: @pager-border-radius;
21 | }
22 |
23 | > a:hover,
24 | > a:focus {
25 | text-decoration: none;
26 | background-color: @pager-hover-bg;
27 | }
28 | }
29 |
30 | .next {
31 | > a,
32 | > span {
33 | float: right;
34 | }
35 | }
36 |
37 | .previous {
38 | > a,
39 | > span {
40 | float: left;
41 | }
42 | }
43 |
44 | .disabled {
45 | > a,
46 | > a:hover,
47 | > a:focus,
48 | > span {
49 | color: @pager-disabled-color;
50 | background-color: @pager-bg;
51 | cursor: @cursor-disabled;
52 | }
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/graphs/src/main/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/graphs/SearchResult.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs;
2 |
3 | /**
4 | * Class modeling a search result used in the application.
5 | * Content comes from the results of the search engine
6 | *
7 | * @author Alexander Gössl, Arwed Gölz, Ramy Hcini, Sebastian Vollbrecht
8 | * @since 20 Jan 2017
9 | * @version 1.8
10 | */
11 | public class SearchResult {
12 | private String highlight;
13 | private String text;
14 | private String id;
15 |
16 | /**
17 | * The ONE AND ONLY constructor used for creating Search instances
18 | *
19 | * @param _id
20 | * of the search result
21 | * @param _highlight
22 | * section
23 | * @param _text
24 | */
25 | public SearchResult(String _id, String _highlight, String _text) {
26 | highlight = _highlight;
27 | text = _text;
28 | id = _id;
29 | }
30 |
31 | public String highlight() {
32 | return highlight;
33 | }
34 |
35 | public String text() {
36 | return text;
37 | }
38 |
39 | public String id() {
40 | return id;
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/grunt/bs-commonjs-generator.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Grunt task for the CommonJS module generation
3 | * http://getbootstrap.com
4 | * Copyright 2014-2015 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6 | */
7 |
8 | 'use strict';
9 |
10 | var fs = require('fs');
11 | var path = require('path');
12 |
13 | var COMMONJS_BANNER = '// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.\n';
14 |
15 | module.exports = function generateCommonJSModule(grunt, srcFiles, destFilepath) {
16 | var destDir = path.dirname(destFilepath);
17 |
18 | function srcPathToDestRequire(srcFilepath) {
19 | var requirePath = path.relative(destDir, srcFilepath).replace(/\\/g, '/');
20 | return 'require(\'' + requirePath + '\')';
21 | }
22 |
23 | var moduleOutputJs = COMMONJS_BANNER + srcFiles.map(srcPathToDestRequire).join('\n');
24 | try {
25 | fs.writeFileSync(destFilepath, moduleOutputJs);
26 | } catch (err) {
27 | grunt.fail.warn(err);
28 | }
29 | grunt.log.writeln('File ' + destFilepath.cyan + ' created.');
30 | };
31 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/exports/amd.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core"
3 | ], function( jQuery ) {
4 |
5 | "use strict";
6 |
7 | // Register as a named AMD module, since jQuery can be concatenated with other
8 | // files that may use define, but not via a proper concatenation script that
9 | // understands anonymous AMD modules. A named AMD is safest and most robust
10 | // way to register. Lowercase jquery is used because AMD module names are
11 | // derived from file names, and jQuery is normally delivered in a lowercase
12 | // file name. Do this after creating the global so that if an AMD module wants
13 | // to call noConflict to hide this version of jQuery, it will work.
14 |
15 | // Note that for maximum portability, libraries that are not jQuery should
16 | // declare themselves as anonymous modules, and avoid setting a global if an
17 | // AMD loader is present. jQuery is a special case. For more information, see
18 | // https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
19 |
20 | if ( typeof define === "function" && define.amd ) {
21 | define( "jquery", [], function() {
22 | return jQuery;
23 | } );
24 | }
25 |
26 | } );
27 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/angular/LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2016 Angular
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/webapp/src/main/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/webapp/application/domains/SearchResponse.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.webapp.application.domains;
2 |
3 | import java.util.List;
4 |
5 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs.Graph;
6 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs.SearchResult;
7 |
8 | /**
9 | * The wrapper class of the JSON response sent to the client application
10 | *
11 | * @author Alexander Gössl, Arwed Gölz, Ramy Hcini, Sebastian Vollbrecht
12 | * @since 20 Jan 2017
13 | * @version 1.7
14 | */
15 | public class SearchResponse {
16 | List searchResults;
17 | GraphAPI graph;
18 |
19 | /**
20 | * ONE AND ONLY constructor
21 | *
22 | * @param _searchResults
23 | * @param _graph
24 | */
25 | public SearchResponse(List _searchResults, Graph _graph) {
26 | searchResults = _searchResults;
27 | graph = new GraphAPI(_graph);
28 | }
29 |
30 | public List searchResults() {
31 | return searchResults;
32 | }
33 |
34 | public GraphAPI graph() {
35 | return graph;
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/angular-cookies/LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2016 Angular
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/angular-route/LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2016 Angular
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/angular-sanitize/LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2016 Angular
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2011-2016 Twitter, Inc.
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/webapp/src/main/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/webapp/application/domains/GraphAPI.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.webapp.application.domains;
2 |
3 | import java.util.LinkedList;
4 | import java.util.List;
5 |
6 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs.Graph;
7 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs.GraphEdge;
8 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs.GraphNode;
9 |
10 | /**
11 | * Graph for usage in API (with GraphEdgeAPI)
12 | */
13 | public class GraphAPI {
14 |
15 | private List nodes;
16 | private List edges;
17 | private boolean directed;
18 |
19 | public GraphAPI(Graph g) {
20 | this.nodes = g.nodes();
21 | this.edges = new LinkedList();
22 | for (GraphEdge e : g.edges())
23 | this.edges.add(new GraphEdgeAPI(e));
24 | this.directed = g.isDirected();
25 | }
26 |
27 | public List nodes() {
28 | return nodes;
29 | }
30 |
31 | public List edges() {
32 | return edges;
33 | }
34 |
35 | public boolean isDirected() {
36 | return directed;
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/manipulation/support.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../var/document",
3 | "../var/support"
4 | ], function( document, support ) {
5 |
6 | "use strict";
7 |
8 | ( function() {
9 | var fragment = document.createDocumentFragment(),
10 | div = fragment.appendChild( document.createElement( "div" ) ),
11 | input = document.createElement( "input" );
12 |
13 | // Support: Android 4.0 - 4.3 only
14 | // Check state lost if the name is set (#11217)
15 | // Support: Windows Web Apps (WWA)
16 | // `name` and `type` must use .setAttribute for WWA (#14901)
17 | input.setAttribute( "type", "radio" );
18 | input.setAttribute( "checked", "checked" );
19 | input.setAttribute( "name", "t" );
20 |
21 | div.appendChild( input );
22 |
23 | // Support: Android <=4.1 only
24 | // Older WebKit doesn't clone checked state correctly in fragments
25 | support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
26 |
27 | // Support: IE <=11 only
28 | // Make sure textarea (and checkbox) defaultValue is properly cloned
29 | div.innerHTML = "";
30 | support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
31 | } )();
32 |
33 | return support;
34 |
35 | } );
36 |
--------------------------------------------------------------------------------
/webapp/src/main/resources/configs/collections.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
7 |
10 |
13 |
16 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/media.less:
--------------------------------------------------------------------------------
1 | .media {
2 | // Proper spacing between instances of .media
3 | margin-top: 15px;
4 |
5 | &:first-child {
6 | margin-top: 0;
7 | }
8 | }
9 |
10 | .media,
11 | .media-body {
12 | zoom: 1;
13 | overflow: hidden;
14 | }
15 |
16 | .media-body {
17 | width: 10000px;
18 | }
19 |
20 | .media-object {
21 | display: block;
22 |
23 | // Fix collapse in webkit from max-width: 100% and display: table-cell.
24 | &.img-thumbnail {
25 | max-width: none;
26 | }
27 | }
28 |
29 | .media-right,
30 | .media > .pull-right {
31 | padding-left: 10px;
32 | }
33 |
34 | .media-left,
35 | .media > .pull-left {
36 | padding-right: 10px;
37 | }
38 |
39 | .media-left,
40 | .media-right,
41 | .media-body {
42 | display: table-cell;
43 | vertical-align: top;
44 | }
45 |
46 | .media-middle {
47 | vertical-align: middle;
48 | }
49 |
50 | .media-bottom {
51 | vertical-align: bottom;
52 | }
53 |
54 | // Reset margins on headings for tighter default spacing
55 | .media-heading {
56 | margin-top: 0;
57 | margin-bottom: 5px;
58 | }
59 |
60 | // Media list variation
61 | //
62 | // Undo default ul/ol styles
63 | .media-list {
64 | padding-left: 0;
65 | list-style: none;
66 | }
67 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/mixins/image.less:
--------------------------------------------------------------------------------
1 | // Image Mixins
2 | // - Responsive image
3 | // - Retina image
4 |
5 |
6 | // Responsive image
7 | //
8 | // Keep images from scaling beyond the width of their parents.
9 | .img-responsive(@display: block) {
10 | display: @display;
11 | max-width: 100%; // Part 1: Set a maximum relative to the parent
12 | height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
13 | }
14 |
15 |
16 | // Retina image
17 | //
18 | // Short retina mixin for setting background-image and -size. Note that the
19 | // spelling of `min--moz-device-pixel-ratio` is intentional.
20 | .img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {
21 | background-image: url("@{file-1x}");
22 |
23 | @media
24 | only screen and (-webkit-min-device-pixel-ratio: 2),
25 | only screen and ( min--moz-device-pixel-ratio: 2),
26 | only screen and ( -o-min-device-pixel-ratio: 2/1),
27 | only screen and ( min-device-pixel-ratio: 2),
28 | only screen and ( min-resolution: 192dpi),
29 | only screen and ( min-resolution: 2dppx) {
30 | background-image: url("@{file-2x}");
31 | background-size: @width-1x @height-1x;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/graphs/src/main/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/graphs/UpdateQueue.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs;
2 |
3 | import java.util.HashSet;
4 | import java.util.Set;
5 |
6 | /**
7 | * This class stores for every user if there is an update available for their
8 | * graphs.
9 | */
10 | public class UpdateQueue {
11 | static private Set queue = new HashSet();
12 |
13 | /**
14 | * Add a user ID to the queue to notify the client that this user's
15 | * graph has changed.
16 | *
17 | * @param uuid
18 | * the user ID.
19 | */
20 | public static void add(String uuid) {
21 | queue.add(uuid);
22 | }
23 |
24 | /**
25 | * Get the state of a given user's graph. If the user ID is in the set,
26 | * the user's graph has changed.
27 | * If not, the user's graph hasn't changed.
28 | *
29 | * @param uuid
30 | * the user ID.
31 | * @return
32 | * true if the given user's graph has changed, otherwise false.
33 | */
34 | public static boolean getStateOf(String uuid) {
35 | if (queue.contains(uuid)) {
36 | queue.remove(uuid);
37 | return true;
38 | } else {
39 | return false;
40 | }
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/ISSUE_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | Before opening an issue:
2 |
3 | - [Search for duplicate or closed issues](https://github.com/twbs/bootstrap/issues?utf8=%E2%9C%93&q=is%3Aissue)
4 | - [Validate](http://validator.w3.org/nu/) and [lint](https://github.com/twbs/bootlint#in-the-browser) any HTML to avoid common problems
5 | - Prepare a [reduced test case](https://css-tricks.com/reduced-test-cases/) for any bugs
6 | - Read the [contributing guidelines](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md)
7 |
8 | When asking general "how to" questions:
9 |
10 | - Please do not open an issue here
11 | - Instead, ask for help on [StackOverflow, IRC, or Slack](https://github.com/twbs/bootstrap/blob/master/README.md#community)
12 |
13 | When reporting a bug, include:
14 |
15 | - Operating system and version (Windows, Mac OS X, Android, iOS, Win10 Mobile)
16 | - Browser and version (Chrome, Firefox, Safari, IE, MS Edge, Opera 15+, Android Browser)
17 | - Reduced test cases and potential fixes using [JS Bin](https://jsbin.com)
18 |
19 | When suggesting a feature, include:
20 |
21 | - As much detail as possible for what we should add and why it's important to Bootstrap
22 | - Relevant links to prior art, screenshots, or live demos whenever possible
23 |
--------------------------------------------------------------------------------
/webapp/src/test/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/webapp/application/configs/WebAppConfigurationTest.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.webapp.application.configs;
2 |
3 | import static org.junit.Assert.assertEquals;
4 |
5 | import java.util.List;
6 |
7 | import org.junit.Before;
8 | import org.junit.Test;
9 |
10 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.webapp.application.domains.Collection;
11 |
12 | public class WebAppConfigurationTest {
13 | private WebAppConfiguration config;
14 |
15 | @Before
16 | public void setUp() throws Exception {
17 | config = WebAppConfiguration.getInstance();
18 | }
19 |
20 | /**
21 | * Collections
22 | */
23 | @Test
24 | public void testGetCollection() {
25 | Collection c = config.getCollection("collectionTest1");
26 | assertEquals(c.folder(), "/data/test1/");
27 | }
28 |
29 | @Test
30 | public void testGetCollections() {
31 | List lc = config.getCollections();
32 | assertEquals(lc.size(), 2);
33 | }
34 |
35 | /**
36 | * Solr Server URL
37 | */
38 | @Test
39 | public void testSolrServerUrl() {
40 | assertEquals(config.solrServerUrl(), "http://localhost:8983/solr/documents");
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/webapp/src/main/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/webapp/application/search/ISearcher.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.webapp.application.search;
2 |
3 | import java.util.List;
4 |
5 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs.SearchResult;
6 |
7 | /**
8 | * The interface utilized by all search class implementations
9 | *
10 | * @author Alexander Gössl, Ramy Hcini, Sebastian Vollbrecht, Arwed Gölz
11 | */
12 | public interface ISearcher {
13 |
14 | /**
15 | * Perform a query on the underlying search method
16 | *
17 | * @param keyword
18 | * The string to search for
19 | * @param groupID
20 | * The document collection to search
21 | * @return A list of the results
22 | */
23 | public List query(String keyword, String groupID);
24 |
25 | /**
26 | * Sets the string url of the server
27 | *
28 | * @param url:
29 | * url of the server
30 | */
31 | public void setUrl(String url);
32 |
33 | /**
34 | * List the available document collections that can be searched through
35 | *
36 | * @return A list of available document collections
37 | */
38 | public List groupIDs();
39 | }
40 |
--------------------------------------------------------------------------------
/webapp/src/test/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/webapp/application/graph/DummyGraphGeneratorTest.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.webapp.application.graph;
2 |
3 | import static org.junit.Assert.assertEquals;
4 |
5 | import java.util.ArrayList;
6 | import java.util.List;
7 |
8 | import org.junit.Before;
9 | import org.junit.Test;
10 |
11 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs.SearchResult;
12 |
13 | public class DummyGraphGeneratorTest {
14 | private List searchResults;
15 |
16 | @Before
17 | public void setUp() throws Exception {
18 | searchResults = new ArrayList();
19 | searchResults.add(new SearchResult("1018-7.txt", "", "")); // 4 nodes ;
20 | // 2 edges
21 | searchResults.add(new SearchResult("1018-1.txt", "", "")); // 4 nodes ;
22 | // 2 edges
23 | }
24 |
25 | @Test
26 | public void testGeneratedGraph() {
27 | FileGraphGenerator dummy = new FileGraphGenerator();
28 | String[] params = { "" };
29 | dummy.initialize(searchResults, null, params); // "/data/student_loans/");
30 |
31 | assertEquals(dummy.getGraph().edges().size(), 5);
32 | assertEquals(dummy.getGraph().nodes().size(), 7);
33 | }
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/webapp/src/main/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/webapp/application/domains/Collection.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.webapp.application.domains;
2 |
3 | /**
4 | * A class representing the Collection
5 | *
6 | * @author Alexander Gössl, Arwed Gölz, Ramy Hcini, Sebastian Vollbrecht
7 | * @since 30 Jan 2017
8 | * @version 1.2
9 | */
10 | public class Collection {
11 | String name;
12 | String folder;
13 | String className;
14 | String params;
15 |
16 | public Collection(String _n, String _f, String _c, String _p) {
17 | name = _n;
18 | folder = _f;
19 | className = _c;
20 | params = _p;
21 | if (params == null)
22 | params = "";
23 | }
24 |
25 | public String name() {
26 | return name;
27 | }
28 |
29 | public String folder() {
30 | return folder;
31 | }
32 |
33 | public String className() {
34 | return className;
35 | }
36 |
37 | public String params() {
38 | return params;
39 | }
40 |
41 | public void setName(String n) {
42 | name = n;
43 | }
44 |
45 | public void setFolder(String f) {
46 | folder = f;
47 | }
48 |
49 | public void setClassName(String c) {
50 | className = c;
51 | }
52 |
53 | public void setParams(String p) {
54 | params = p;
55 | }
56 |
57 | }
58 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/mixins.less:
--------------------------------------------------------------------------------
1 | // Mixins
2 | // --------------------------------------------------
3 |
4 | // Utilities
5 | @import "mixins/hide-text.less";
6 | @import "mixins/opacity.less";
7 | @import "mixins/image.less";
8 | @import "mixins/labels.less";
9 | @import "mixins/reset-filter.less";
10 | @import "mixins/resize.less";
11 | @import "mixins/responsive-visibility.less";
12 | @import "mixins/size.less";
13 | @import "mixins/tab-focus.less";
14 | @import "mixins/reset-text.less";
15 | @import "mixins/text-emphasis.less";
16 | @import "mixins/text-overflow.less";
17 | @import "mixins/vendor-prefixes.less";
18 |
19 | // Components
20 | @import "mixins/alerts.less";
21 | @import "mixins/buttons.less";
22 | @import "mixins/panels.less";
23 | @import "mixins/pagination.less";
24 | @import "mixins/list-group.less";
25 | @import "mixins/nav-divider.less";
26 | @import "mixins/forms.less";
27 | @import "mixins/progress-bar.less";
28 | @import "mixins/table-row.less";
29 |
30 | // Skins
31 | @import "mixins/background-variant.less";
32 | @import "mixins/border-radius.less";
33 | @import "mixins/gradients.less";
34 |
35 | // Layout
36 | @import "mixins/clearfix.less";
37 | @import "mixins/center-block.less";
38 | @import "mixins/nav-vertical-align.less";
39 | @import "mixins/grid-framework.less";
40 | @import "mixins/grid.less";
41 |
--------------------------------------------------------------------------------
/indexer/src/main/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/indexer/application/IArgumentsHandler.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.indexer.application;
2 |
3 | import java.nio.file.Path;
4 |
5 | /**
6 | * ArgumentsHandler interface that will be used by the core application to handle the arguments
7 | * given to the application
8 | * @author Ramy Hcini
9 | * @since 20 Dec 2016
10 | * @version 1.0
11 | */
12 | public interface IArgumentsHandler {
13 | /**
14 | * sets the arguments received from the command line
15 | * @param args an array of arguments
16 | */
17 | public void setArguments(String[] args) ;
18 | /**
19 | * @return the path of the directory containing the text files to be indexed
20 | */
21 | public Path getDirectoryPath() ;
22 |
23 | /**
24 | * @return the number of expected arguments
25 | */
26 | public int getNbOfArgs() ;
27 |
28 | /**
29 | * Sets the server url from the config file
30 | * @param url
31 | */
32 | public void setServerUrl(String url) ;
33 | /**
34 | * @return the server url
35 | */
36 | public String getServerUrl() ;
37 |
38 | /**
39 | * @param key is the name of the argument to get, used to enable classes to have optional and special arguments
40 | * @return the value of the argument with the key key
41 | */
42 | public String get(String key) ;
43 | }
44 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/labels.less:
--------------------------------------------------------------------------------
1 | //
2 | // Labels
3 | // --------------------------------------------------
4 |
5 | .label {
6 | display: inline;
7 | padding: .2em .6em .3em;
8 | font-size: 75%;
9 | font-weight: bold;
10 | line-height: 1;
11 | color: @label-color;
12 | text-align: center;
13 | white-space: nowrap;
14 | vertical-align: baseline;
15 | border-radius: .25em;
16 |
17 | // Add hover effects, but only for links
18 | a& {
19 | &:hover,
20 | &:focus {
21 | color: @label-link-hover-color;
22 | text-decoration: none;
23 | cursor: pointer;
24 | }
25 | }
26 |
27 | // Empty labels collapse automatically (not available in IE8)
28 | &:empty {
29 | display: none;
30 | }
31 |
32 | // Quick fix for labels in buttons
33 | .btn & {
34 | position: relative;
35 | top: -1px;
36 | }
37 | }
38 |
39 | // Colors
40 | // Contextual variations (linked labels get darker on :hover)
41 |
42 | .label-default {
43 | .label-variant(@label-default-bg);
44 | }
45 |
46 | .label-primary {
47 | .label-variant(@label-primary-bg);
48 | }
49 |
50 | .label-success {
51 | .label-variant(@label-success-bg);
52 | }
53 |
54 | .label-info {
55 | .label-variant(@label-info-bg);
56 | }
57 |
58 | .label-warning {
59 | .label-variant(@label-warning-bg);
60 | }
61 |
62 | .label-danger {
63 | .label-variant(@label-danger-bg);
64 | }
65 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/nuget/bootstrap.nuspec:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | bootstrap
5 | 3.3.7
6 | Bootstrap CSS
7 | Twitter, Inc.
8 | bootstrap
9 | The most popular front-end framework for developing responsive, mobile first projects on the web.
10 | http://blog.getbootstrap.com
11 | Bootstrap framework in CSS. Includes fonts and JavaScript
12 | en-us
13 | http://getbootstrap.com
14 | http://getbootstrap.com/apple-touch-icon.png
15 | https://github.com/twbs/bootstrap/blob/master/LICENSE
16 | Copyright 2016
17 | false
18 |
19 |
20 |
21 | css js less mobile-first responsive front-end framework web
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/jumbotron.less:
--------------------------------------------------------------------------------
1 | //
2 | // Jumbotron
3 | // --------------------------------------------------
4 |
5 |
6 | .jumbotron {
7 | padding-top: @jumbotron-padding;
8 | padding-bottom: @jumbotron-padding;
9 | margin-bottom: @jumbotron-padding;
10 | color: @jumbotron-color;
11 | background-color: @jumbotron-bg;
12 |
13 | h1,
14 | .h1 {
15 | color: @jumbotron-heading-color;
16 | }
17 |
18 | p {
19 | margin-bottom: (@jumbotron-padding / 2);
20 | font-size: @jumbotron-font-size;
21 | font-weight: 200;
22 | }
23 |
24 | > hr {
25 | border-top-color: darken(@jumbotron-bg, 10%);
26 | }
27 |
28 | .container &,
29 | .container-fluid & {
30 | border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container
31 | padding-left: (@grid-gutter-width / 2);
32 | padding-right: (@grid-gutter-width / 2);
33 | }
34 |
35 | .container {
36 | max-width: 100%;
37 | }
38 |
39 | @media screen and (min-width: @screen-sm-min) {
40 | padding-top: (@jumbotron-padding * 1.6);
41 | padding-bottom: (@jumbotron-padding * 1.6);
42 |
43 | .container &,
44 | .container-fluid & {
45 | padding-left: (@jumbotron-padding * 2);
46 | padding-right: (@jumbotron-padding * 2);
47 | }
48 |
49 | h1,
50 | .h1 {
51 | font-size: @jumbotron-heading-font-size;
52 | }
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/webapp/src/test/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/webapp/application/graph/parser/SampleDataParserTest.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.webapp.application.graph.parser;
2 |
3 | import static org.junit.Assert.assertEquals;
4 |
5 | import org.junit.Test;
6 |
7 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.webapp.application.graph.parser.SampleDataParser;
8 |
9 | public class SampleDataParserTest {
10 |
11 | @Test
12 | public void testOrg() {
13 | SampleDataParser p = new SampleDataParser();
14 | p.setVerbose(true);
15 | assertEquals(true, p.parse());
16 | assertEquals(25, p.getGraph().nodes().size());
17 | assertEquals(28, p.getGraph().edges().size());
18 |
19 | }
20 |
21 | @Test
22 | public void testPersons1() {
23 | SampleDataParser p = new SampleDataParser();
24 | p.setSrc("/graph/persons1.graph");
25 | p.setVerbose(true);
26 | assertEquals(true, p.parse());
27 | assertEquals(13, p.getGraph().nodes().size());
28 | assertEquals(24, p.getGraph().edges().size());
29 | }
30 |
31 | @Test
32 | public void testPersons2() {
33 | SampleDataParser p = new SampleDataParser();
34 | p.setSrc("/graph/persons2.graph");
35 | p.setVerbose(true);
36 | assertEquals(true, p.parse());
37 | assertEquals(188, p.getGraph().nodes().size());
38 | assertEquals(179, p.getGraph().edges().size());
39 | }
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/nuget/bootstrap.less.nuspec:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | bootstrap.less
5 | 3.3.7
6 | Bootstrap Less
7 | Twitter, Inc.
8 | bootstrap
9 | The most popular front-end framework for developing responsive, mobile first projects on the web.
10 | http://blog.getbootstrap.com
11 | Bootstrap framework in Less. Includes fonts and JavaScript
12 | en-us
13 | http://getbootstrap.com
14 | http://getbootstrap.com/apple-touch-icon.png
15 | https://github.com/twbs/bootstrap/blob/master/LICENSE
16 | Copyright 2016
17 | false
18 |
19 |
20 |
21 | css js less mobile-first responsive front-end framework web
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/css/var/isHiddenWithinTree.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../../core",
3 | "../../selector"
4 |
5 | // css is assumed
6 | ], function( jQuery ) {
7 | "use strict";
8 |
9 | // isHiddenWithinTree reports if an element has a non-"none" display style (inline and/or
10 | // through the CSS cascade), which is useful in deciding whether or not to make it visible.
11 | // It differs from the :hidden selector (jQuery.expr.pseudos.hidden) in two important ways:
12 | // * A hidden ancestor does not force an element to be classified as hidden.
13 | // * Being disconnected from the document does not force an element to be classified as hidden.
14 | // These differences improve the behavior of .toggle() et al. when applied to elements that are
15 | // detached or contained within hidden ancestors (gh-2404, gh-2863).
16 | return function( elem, el ) {
17 |
18 | // isHiddenWithinTree might be called from jQuery#filter function;
19 | // in that case, element will be second argument
20 | elem = el || elem;
21 |
22 | // Inline style trumps all
23 | return elem.style.display === "none" ||
24 | elem.style.display === "" &&
25 |
26 | // Otherwise, check computed style
27 | // Support: Firefox <=43 - 45
28 | // Disconnected elements can have computed display: none, so first confirm that elem is
29 | // in the document.
30 | jQuery.contains( elem.ownerDocument, elem ) &&
31 |
32 | jQuery.css( elem, "display" ) === "none";
33 | };
34 | } );
35 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/angular-cookies/angular-cookies.min.js:
--------------------------------------------------------------------------------
1 | /*
2 | AngularJS v1.5.11
3 | (c) 2010-2017 Google, Inc. http://angularjs.org
4 | License: MIT
5 | */
6 | (function(n,c){'use strict';function l(b,a,g){var d=g.baseHref(),k=b[0];return function(b,e,f){var g,h;f=f||{};h=f.expires;g=c.isDefined(f.path)?f.path:d;c.isUndefined(e)&&(h="Thu, 01 Jan 1970 00:00:00 GMT",e="");c.isString(h)&&(h=new Date(h));e=encodeURIComponent(b)+"="+encodeURIComponent(e);e=e+(g?";path="+g:"")+(f.domain?";domain="+f.domain:"");e+=h?";expires="+h.toUTCString():"";e+=f.secure?";secure":"";f=e.length+1;4096 4096 bytes)!");k.cookie=e}}c.module("ngCookies",["ng"]).provider("$cookies",[function(){var b=this.defaults={};this.$get=["$$cookieReader","$$cookieWriter",function(a,g){return{get:function(d){return a()[d]},getObject:function(d){return(d=this.get(d))?c.fromJson(d):d},getAll:function(){return a()},put:function(d,a,m){g(d,a,m?c.extend({},b,m):b)},putObject:function(d,b,a){this.put(d,c.toJson(b),a)},remove:function(a,k){g(a,void 0,k?c.extend({},b,k):b)}}}]}]);c.module("ngCookies").factory("$cookieStore",
8 | ["$cookies",function(b){return{get:function(a){return b.getObject(a)},put:function(a,c){b.putObject(a,c)},remove:function(a){b.remove(a)}}}]);l.$inject=["$document","$log","$browser"];c.module("ngCookies").provider("$$cookieWriter",function(){this.$get=l})})(window,window.angular);
9 | //# sourceMappingURL=angular-cookies.min.js.map
10 |
--------------------------------------------------------------------------------
/webapp/src/main/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/webapp/application/domains/GraphEdgeAPI.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.webapp.application.domains;
2 |
3 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs.GraphEdge;
4 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs.Label;
5 |
6 | /**
7 | * Graph edge for usage in API -> without references to nodes
8 | */
9 | public class GraphEdgeAPI {
10 | private String id;
11 | private Label label;
12 | /**
13 | * Source node ID
14 | */
15 | private String source;
16 | /**
17 | * Target node ID
18 | */
19 | private String target;
20 |
21 | final private transient String NO_SOURCE_NODE = "null";
22 | final private transient String NO_TARGET_NODE = "null";
23 |
24 | public GraphEdgeAPI(GraphEdge e) {
25 | this.id = e.id();
26 | this.label = e.label();
27 | this.source = e.getSource().id();
28 | if (this.source == null)
29 | this.source = NO_SOURCE_NODE;
30 | this.target = e.getTarget().id();
31 | if (this.target == null)
32 | this.target = NO_TARGET_NODE;
33 | }
34 |
35 | public String id() {
36 | return id;
37 | }
38 |
39 | public String source() {
40 | return source;
41 | }
42 |
43 | public String target() {
44 | return target;
45 | }
46 |
47 | public Label label() {
48 | return label;
49 | }
50 |
51 | @Override
52 | public String toString() {
53 | return source + "-" + target;
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/badges.less:
--------------------------------------------------------------------------------
1 | //
2 | // Badges
3 | // --------------------------------------------------
4 |
5 |
6 | // Base class
7 | .badge {
8 | display: inline-block;
9 | min-width: 10px;
10 | padding: 3px 7px;
11 | font-size: @font-size-small;
12 | font-weight: @badge-font-weight;
13 | color: @badge-color;
14 | line-height: @badge-line-height;
15 | vertical-align: middle;
16 | white-space: nowrap;
17 | text-align: center;
18 | background-color: @badge-bg;
19 | border-radius: @badge-border-radius;
20 |
21 | // Empty badges collapse automatically (not available in IE8)
22 | &:empty {
23 | display: none;
24 | }
25 |
26 | // Quick fix for badges in buttons
27 | .btn & {
28 | position: relative;
29 | top: -1px;
30 | }
31 |
32 | .btn-xs &,
33 | .btn-group-xs > .btn & {
34 | top: 0;
35 | padding: 1px 5px;
36 | }
37 |
38 | // Hover state, but only for links
39 | a& {
40 | &:hover,
41 | &:focus {
42 | color: @badge-link-hover-color;
43 | text-decoration: none;
44 | cursor: pointer;
45 | }
46 | }
47 |
48 | // Account for badges in navs
49 | .list-group-item.active > &,
50 | .nav-pills > .active > a > & {
51 | color: @badge-active-color;
52 | background-color: @badge-active-bg;
53 | }
54 |
55 | .list-group-item > & {
56 | float: right;
57 | }
58 |
59 | .list-group-item > & + & {
60 | margin-right: 5px;
61 | }
62 |
63 | .nav-pills > li > a > & {
64 | margin-left: 3px;
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/d3/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2010-2016, Michael Bostock
2 | All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without
5 | modification, are permitted provided that the following conditions are met:
6 |
7 | * Redistributions of source code must retain the above copyright notice, this
8 | list of conditions and the following disclaimer.
9 |
10 | * Redistributions in binary form must reproduce the above copyright notice,
11 | this list of conditions and the following disclaimer in the documentation
12 | and/or other materials provided with the distribution.
13 |
14 | * The name Michael Bostock may not be used to endorse or promote products
15 | derived from this software without specific prior written permission.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20 | DISCLAIMED. IN NO EVENT SHALL MICHAEL BOSTOCK BE LIABLE FOR ANY DIRECT,
21 | INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
22 | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
24 | OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26 | EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/bootstrap.less:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap v3.3.7 (http://getbootstrap.com)
3 | * Copyright 2011-2016 Twitter, Inc.
4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5 | */
6 |
7 | // Core variables and mixins
8 | @import "variables.less";
9 | @import "mixins.less";
10 |
11 | // Reset and dependencies
12 | @import "normalize.less";
13 | @import "print.less";
14 | @import "glyphicons.less";
15 |
16 | // Core CSS
17 | @import "scaffolding.less";
18 | @import "type.less";
19 | @import "code.less";
20 | @import "grid.less";
21 | @import "tables.less";
22 | @import "forms.less";
23 | @import "buttons.less";
24 |
25 | // Components
26 | @import "component-animations.less";
27 | @import "dropdowns.less";
28 | @import "button-groups.less";
29 | @import "input-groups.less";
30 | @import "navs.less";
31 | @import "navbar.less";
32 | @import "breadcrumbs.less";
33 | @import "pagination.less";
34 | @import "pager.less";
35 | @import "labels.less";
36 | @import "badges.less";
37 | @import "jumbotron.less";
38 | @import "thumbnails.less";
39 | @import "alerts.less";
40 | @import "progress-bars.less";
41 | @import "media.less";
42 | @import "list-group.less";
43 | @import "panels.less";
44 | @import "responsive-embed.less";
45 | @import "wells.less";
46 | @import "close.less";
47 |
48 | // Components w/ JavaScript
49 | @import "modals.less";
50 | @import "tooltip.less";
51 | @import "popovers.less";
52 | @import "carousel.less";
53 |
54 | // Utility classes
55 | @import "utilities.less";
56 | @import "responsive-utilities.less";
57 |
--------------------------------------------------------------------------------
/graphs-ne-impl/pom.xml:
--------------------------------------------------------------------------------
1 |
2 | 4.0.0
3 |
4 | de.tudarmstadt.ukp.exploration
5 | graph-doc-explorer
6 | 0.0.1-SNAPSHOT
7 |
8 | graph-doc-explorer.graphs-ne-impl
9 | implementation of graph interface for entities
10 | jar
11 |
12 |
13 |
14 | de.tudarmstadt.ukp.exploration
15 | graph-doc-explorer.graphs
16 | 0.0.1-SNAPSHOT
17 |
18 |
19 | de.tudarmstadt.ukp.dkpro.core
20 |
21 | de.tudarmstadt.ukp.dkpro.core.stanfordnlp-gpl
22 |
23 | 1.8.0
24 |
25 |
26 | de.tudarmstadt.ukp.dkpro.core
27 |
28 | de.tudarmstadt.ukp.dkpro.core.io.bincas-asl
29 |
30 | 1.8.0
31 |
32 |
33 | de.tudarmstadt.ukp.dkpro.core
34 |
35 | de.tudarmstadt.ukp.dkpro.core.io.text-asl
36 |
37 | 1.8.0
38 |
39 |
40 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/grunt/bs-raw-files-generator.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Grunt task for generating raw-files.min.js for the Customizer
3 | * http://getbootstrap.com
4 | * Copyright 2014-2015 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6 | */
7 |
8 | 'use strict';
9 |
10 | var fs = require('fs');
11 | var btoa = require('btoa');
12 | var glob = require('glob');
13 |
14 | function getFiles(type) {
15 | var files = {};
16 | var recursive = type === 'less';
17 | var globExpr = recursive ? '/**/*' : '/*';
18 | glob.sync(type + globExpr)
19 | .filter(function (path) {
20 | return type === 'fonts' ? true : new RegExp('\\.' + type + '$').test(path);
21 | })
22 | .forEach(function (fullPath) {
23 | var relativePath = fullPath.replace(/^[^/]+\//, '');
24 | files[relativePath] = type === 'fonts' ? btoa(fs.readFileSync(fullPath)) : fs.readFileSync(fullPath, 'utf8');
25 | });
26 | return 'var __' + type + ' = ' + JSON.stringify(files) + '\n';
27 | }
28 |
29 | module.exports = function generateRawFilesJs(grunt, banner) {
30 | if (!banner) {
31 | banner = '';
32 | }
33 | var dirs = ['js', 'less', 'fonts'];
34 | var files = banner + dirs.map(getFiles).reduce(function (combined, file) {
35 | return combined + file;
36 | }, '');
37 | var rawFilesJs = 'docs/assets/js/raw-files.min.js';
38 | try {
39 | fs.writeFileSync(rawFilesJs, files);
40 | } catch (err) {
41 | grunt.fail.warn(err);
42 | }
43 | grunt.log.writeln('File ' + rawFilesJs.cyan + ' created.');
44 | };
45 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/WEB-INF/log4j2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/core/access.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core"
3 | ], function( jQuery ) {
4 |
5 | "use strict";
6 |
7 | // Multifunctional method to get and set values of a collection
8 | // The value/s can optionally be executed if it's a function
9 | var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
10 | var i = 0,
11 | len = elems.length,
12 | bulk = key == null;
13 |
14 | // Sets many values
15 | if ( jQuery.type( key ) === "object" ) {
16 | chainable = true;
17 | for ( i in key ) {
18 | access( elems, fn, i, key[ i ], true, emptyGet, raw );
19 | }
20 |
21 | // Sets one value
22 | } else if ( value !== undefined ) {
23 | chainable = true;
24 |
25 | if ( !jQuery.isFunction( value ) ) {
26 | raw = true;
27 | }
28 |
29 | if ( bulk ) {
30 |
31 | // Bulk operations run against the entire set
32 | if ( raw ) {
33 | fn.call( elems, value );
34 | fn = null;
35 |
36 | // ...except when executing function values
37 | } else {
38 | bulk = fn;
39 | fn = function( elem, key, value ) {
40 | return bulk.call( jQuery( elem ), value );
41 | };
42 | }
43 | }
44 |
45 | if ( fn ) {
46 | for ( ; i < len; i++ ) {
47 | fn(
48 | elems[ i ], key, raw ?
49 | value :
50 | value.call( elems[ i ], i, fn( elems[ i ], key ) )
51 | );
52 | }
53 | }
54 | }
55 |
56 | if ( chainable ) {
57 | return elems;
58 | }
59 |
60 | // Gets
61 | if ( bulk ) {
62 | return fn.call( elems );
63 | }
64 |
65 | return len ? fn( elems[ 0 ], key ) : emptyGet;
66 | };
67 |
68 | return access;
69 |
70 | } );
71 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/WEB-INF/webapp-dispatcher-servlet.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
12 |
14 |
16 |
18 |
20 |
21 |
22 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/grunt/bs-glyphicons-data-generator.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Grunt task for Glyphicons data generation
3 | * http://getbootstrap.com
4 | * Copyright 2014-2015 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6 | */
7 |
8 | 'use strict';
9 |
10 | var fs = require('fs');
11 |
12 | module.exports = function generateGlyphiconsData(grunt) {
13 | // Pass encoding, utf8, so `readFileSync` will return a string instead of a
14 | // buffer
15 | var glyphiconsFile = fs.readFileSync('less/glyphicons.less', 'utf8');
16 | var glyphiconsLines = glyphiconsFile.split('\n');
17 |
18 | // Use any line that starts with ".glyphicon-" and capture the class name
19 | var iconClassName = /^\.(glyphicon-[a-zA-Z0-9-]+)/;
20 | var glyphiconsData = '# This file is generated via Grunt task. **Do not edit directly.**\n' +
21 | '# See the \'build-glyphicons-data\' task in Gruntfile.js.\n\n';
22 | var glyphiconsYml = 'docs/_data/glyphicons.yml';
23 | for (var i = 0, len = glyphiconsLines.length; i < len; i++) {
24 | var match = glyphiconsLines[i].match(iconClassName);
25 |
26 | if (match !== null) {
27 | glyphiconsData += '- ' + match[1] + '\n';
28 | }
29 | }
30 |
31 | // Create the `_data` directory if it doesn't already exist
32 | if (!fs.existsSync('docs/_data')) {
33 | fs.mkdirSync('docs/_data');
34 | }
35 |
36 | try {
37 | fs.writeFileSync(glyphiconsYml, glyphiconsData);
38 | } catch (err) {
39 | grunt.fail.warn(err);
40 | }
41 | grunt.log.writeln('File ' + glyphiconsYml.cyan + ' created.');
42 | };
43 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/grunt/configBridge.json:
--------------------------------------------------------------------------------
1 | {
2 | "paths": {
3 | "customizerJs": [
4 | "../assets/js/vendor/autoprefixer.js",
5 | "../assets/js/vendor/less.min.js",
6 | "../assets/js/vendor/jszip.min.js",
7 | "../assets/js/vendor/uglify.min.js",
8 | "../assets/js/vendor/Blob.js",
9 | "../assets/js/vendor/FileSaver.js",
10 | "../assets/js/raw-files.min.js",
11 | "../assets/js/src/customizer.js"
12 | ],
13 | "docsJs": [
14 | "../assets/js/vendor/holder.min.js",
15 | "../assets/js/vendor/ZeroClipboard.min.js",
16 | "../assets/js/vendor/anchor.min.js",
17 | "../assets/js/src/application.js"
18 | ]
19 | },
20 | "config": {
21 | "autoprefixerBrowsers": [
22 | "Android 2.3",
23 | "Android >= 4",
24 | "Chrome >= 20",
25 | "Firefox >= 24",
26 | "Explorer >= 8",
27 | "iOS >= 6",
28 | "Opera >= 12",
29 | "Safari >= 6"
30 | ],
31 | "jqueryCheck": [
32 | "if (typeof jQuery === 'undefined') {",
33 | " throw new Error('Bootstrap\\'s JavaScript requires jQuery')",
34 | "}\n"
35 | ],
36 | "jqueryVersionCheck": [
37 | "+function ($) {",
38 | " 'use strict';",
39 | " var version = $.fn.jquery.split(' ')[0].split('.')",
40 | " if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 3)) {",
41 | " throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4')",
42 | " }",
43 | "}(jQuery);\n\n"
44 | ]
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/graphs-ne-impl/src/main/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/graphs_ne_impl/UimaUtil.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs_ne_impl;
2 |
3 | import java.io.File;
4 | import java.io.FileInputStream;
5 | import java.io.FileNotFoundException;
6 | import java.io.InputStream;
7 |
8 | import org.apache.uima.UIMAException;
9 | import org.apache.uima.cas.impl.Serialization;
10 | import org.apache.uima.fit.factory.JCasFactory;
11 | import org.apache.uima.jcas.JCas;
12 |
13 | import de.tudarmstadt.ukp.dkpro.core.api.metadata.type.DocumentMetaData;
14 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs.SearchResult;
15 |
16 | public class UimaUtil {
17 |
18 | public static JCas createCas(SearchResult doc) {
19 |
20 | JCas jCas = UimaUtil.createEmptyCas();
21 | jCas.setDocumentLanguage("en");
22 | jCas.setDocumentText(doc.text());
23 |
24 | DocumentMetaData docMetaData = DocumentMetaData.create(jCas);
25 | docMetaData.setDocumentId(doc.id());
26 |
27 | return jCas;
28 |
29 | }
30 |
31 | public static JCas createEmptyCas() {
32 | try {
33 | JCas jCas = JCasFactory.createJCas();
34 | return jCas;
35 | } catch (UIMAException e) {
36 | e.printStackTrace();
37 | return null;
38 | }
39 | }
40 |
41 | public static JCas readBinCas(File binFile, JCas jcas) {
42 | try {
43 | InputStream in = new FileInputStream(binFile);
44 | Serialization.deserializeCAS(jcas.getCas(), in);
45 | return jcas;
46 | } catch (FileNotFoundException e) {
47 | e.printStackTrace();
48 | return null;
49 | }
50 | }
51 |
52 | }
53 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/code.less:
--------------------------------------------------------------------------------
1 | //
2 | // Code (inline and block)
3 | // --------------------------------------------------
4 |
5 |
6 | // Inline and block code styles
7 | code,
8 | kbd,
9 | pre,
10 | samp {
11 | font-family: @font-family-monospace;
12 | }
13 |
14 | // Inline code
15 | code {
16 | padding: 2px 4px;
17 | font-size: 90%;
18 | color: @code-color;
19 | background-color: @code-bg;
20 | border-radius: @border-radius-base;
21 | }
22 |
23 | // User input typically entered via keyboard
24 | kbd {
25 | padding: 2px 4px;
26 | font-size: 90%;
27 | color: @kbd-color;
28 | background-color: @kbd-bg;
29 | border-radius: @border-radius-small;
30 | box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
31 |
32 | kbd {
33 | padding: 0;
34 | font-size: 100%;
35 | font-weight: bold;
36 | box-shadow: none;
37 | }
38 | }
39 |
40 | // Blocks of code
41 | pre {
42 | display: block;
43 | padding: ((@line-height-computed - 1) / 2);
44 | margin: 0 0 (@line-height-computed / 2);
45 | font-size: (@font-size-base - 1); // 14px to 13px
46 | line-height: @line-height-base;
47 | word-break: break-all;
48 | word-wrap: break-word;
49 | color: @pre-color;
50 | background-color: @pre-bg;
51 | border: 1px solid @pre-border-color;
52 | border-radius: @border-radius-base;
53 |
54 | // Account for some code outputs that place code tags in pre tags
55 | code {
56 | padding: 0;
57 | font-size: inherit;
58 | color: inherit;
59 | white-space: pre-wrap;
60 | background-color: transparent;
61 | border-radius: 0;
62 | }
63 | }
64 |
65 | // Enable scrollable blocks of code
66 | .pre-scrollable {
67 | max-height: @pre-scrollable-max-height;
68 | overflow-y: scroll;
69 | }
70 |
--------------------------------------------------------------------------------
/graphs/src/main/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/graphs/IGraphGenerator.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs;
2 |
3 | import java.util.List;
4 |
5 | /**
6 | * The interface which all graph generators have to implement.
7 | */
8 | public interface IGraphGenerator {
9 |
10 | /**
11 | * Initializes the graph generator. The initialization needs the search
12 | * results to construct the graph. The folder where the corresponding
13 | * documents are located is useful as it allows storing additional
14 | * information for the graph generator in the folder.
15 | *
16 | * @param searchResults
17 | * A list containing all search results.
18 | * @param folder
19 | * The folder containing the files for this document collection.
20 | */
21 | public void initialize(List searchResults, String folder, String[] args);
22 |
23 | /**
24 | * Add a User Action to the graph generator. The User Action is modeled by a
25 | * LogEntry which contains more information than just the action itself.
26 | *
27 | * @param userAction
28 | * A LogEntry corresponding to a user action. The LogEntry
29 | * contains more information than just the user action. For
30 | * example the user action "node centered" is always logged
31 | * together with the nodes which are visible after centering the
32 | * node.
33 | */
34 | public void addUserAction(LogEntry userAction);
35 |
36 | /**
37 | * Returns the graph generated by the graph generator.
38 | *
39 | * @return The graph object containing all the graph's nodes and edges.
40 | */
41 | public Graph getGraph();
42 |
43 | }
44 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/mixins/buttons.less:
--------------------------------------------------------------------------------
1 | // Button variants
2 | //
3 | // Easily pump out default styles, as well as :hover, :focus, :active,
4 | // and disabled options for all buttons
5 |
6 | .button-variant(@color; @background; @border) {
7 | color: @color;
8 | background-color: @background;
9 | border-color: @border;
10 |
11 | &:focus,
12 | &.focus {
13 | color: @color;
14 | background-color: darken(@background, 10%);
15 | border-color: darken(@border, 25%);
16 | }
17 | &:hover {
18 | color: @color;
19 | background-color: darken(@background, 10%);
20 | border-color: darken(@border, 12%);
21 | }
22 | &:active,
23 | &.active,
24 | .open > .dropdown-toggle& {
25 | color: @color;
26 | background-color: darken(@background, 10%);
27 | border-color: darken(@border, 12%);
28 |
29 | &:hover,
30 | &:focus,
31 | &.focus {
32 | color: @color;
33 | background-color: darken(@background, 17%);
34 | border-color: darken(@border, 25%);
35 | }
36 | }
37 | &:active,
38 | &.active,
39 | .open > .dropdown-toggle& {
40 | background-image: none;
41 | }
42 | &.disabled,
43 | &[disabled],
44 | fieldset[disabled] & {
45 | &:hover,
46 | &:focus,
47 | &.focus {
48 | background-color: @background;
49 | border-color: @border;
50 | }
51 | }
52 |
53 | .badge {
54 | color: @background;
55 | background-color: @color;
56 | }
57 | }
58 |
59 | // Button sizes
60 | .button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
61 | padding: @padding-vertical @padding-horizontal;
62 | font-size: @font-size;
63 | line-height: @line-height;
64 | border-radius: @border-radius;
65 | }
66 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright JS Foundation and other contributors, https://js.foundation/
2 |
3 | This software consists of voluntary contributions made by many
4 | individuals. For exact contribution history, see the revision history
5 | available at https://github.com/jquery/jquery
6 |
7 | The following license applies to all parts of this software except as
8 | documented below:
9 |
10 | ====
11 |
12 | Permission is hereby granted, free of charge, to any person obtaining
13 | a copy of this software and associated documentation files (the
14 | "Software"), to deal in the Software without restriction, including
15 | without limitation the rights to use, copy, modify, merge, publish,
16 | distribute, sublicense, and/or sell copies of the Software, and to
17 | permit persons to whom the Software is furnished to do so, subject to
18 | the following conditions:
19 |
20 | The above copyright notice and this permission notice shall be
21 | included in all copies or substantial portions of the Software.
22 |
23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
27 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
28 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
29 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30 |
31 | ====
32 |
33 | All files located in the node_modules and external directories are
34 | externally maintained libraries used by this software which have their
35 | own licenses; we recommend you read them, as their terms may differ from
36 | the terms above.
37 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/event/focusin.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../data/var/dataPriv",
4 | "./support",
5 |
6 | "../event",
7 | "./trigger"
8 | ], function( jQuery, dataPriv, support ) {
9 |
10 | "use strict";
11 |
12 | // Support: Firefox <=44
13 | // Firefox doesn't have focus(in | out) events
14 | // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
15 | //
16 | // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
17 | // focus(in | out) events fire after focus & blur events,
18 | // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
19 | // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
20 | if ( !support.focusin ) {
21 | jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
22 |
23 | // Attach a single capturing handler on the document while someone wants focusin/focusout
24 | var handler = function( event ) {
25 | jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
26 | };
27 |
28 | jQuery.event.special[ fix ] = {
29 | setup: function() {
30 | var doc = this.ownerDocument || this,
31 | attaches = dataPriv.access( doc, fix );
32 |
33 | if ( !attaches ) {
34 | doc.addEventListener( orig, handler, true );
35 | }
36 | dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
37 | },
38 | teardown: function() {
39 | var doc = this.ownerDocument || this,
40 | attaches = dataPriv.access( doc, fix ) - 1;
41 |
42 | if ( !attaches ) {
43 | doc.removeEventListener( orig, handler, true );
44 | dataPriv.remove( doc, fix );
45 |
46 | } else {
47 | dataPriv.access( doc, fix, attaches );
48 | }
49 | }
50 | };
51 | } );
52 | }
53 |
54 | return jQuery;
55 | } );
56 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/external/sizzle/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright jQuery Foundation and other contributors, https://jquery.org/
2 |
3 | This software consists of voluntary contributions made by many
4 | individuals. For exact contribution history, see the revision history
5 | available at https://github.com/jquery/sizzle
6 |
7 | The following license applies to all parts of this software except as
8 | documented below:
9 |
10 | ====
11 |
12 | Permission is hereby granted, free of charge, to any person obtaining
13 | a copy of this software and associated documentation files (the
14 | "Software"), to deal in the Software without restriction, including
15 | without limitation the rights to use, copy, modify, merge, publish,
16 | distribute, sublicense, and/or sell copies of the Software, and to
17 | permit persons to whom the Software is furnished to do so, subject to
18 | the following conditions:
19 |
20 | The above copyright notice and this permission notice shall be
21 | included in all copies or substantial portions of the Software.
22 |
23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
27 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
28 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
29 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30 |
31 | ====
32 |
33 | All files located in the node_modules and external directories are
34 | externally maintained libraries used by this software which have their
35 | own licenses; we recommend you read them, as their terms may differ from
36 | the terms above.
37 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/grid.less:
--------------------------------------------------------------------------------
1 | //
2 | // Grid system
3 | // --------------------------------------------------
4 |
5 |
6 | // Container widths
7 | //
8 | // Set the container width, and override it for fixed navbars in media queries.
9 |
10 | .container {
11 | .container-fixed();
12 |
13 | @media (min-width: @screen-sm-min) {
14 | width: @container-sm;
15 | }
16 | @media (min-width: @screen-md-min) {
17 | width: @container-md;
18 | }
19 | @media (min-width: @screen-lg-min) {
20 | width: @container-lg;
21 | }
22 | }
23 |
24 |
25 | // Fluid container
26 | //
27 | // Utilizes the mixin meant for fixed width containers, but without any defined
28 | // width for fluid, full width layouts.
29 |
30 | .container-fluid {
31 | .container-fixed();
32 | }
33 |
34 |
35 | // Row
36 | //
37 | // Rows contain and clear the floats of your columns.
38 |
39 | .row {
40 | .make-row();
41 | }
42 |
43 |
44 | // Columns
45 | //
46 | // Common styles for small and large grid columns
47 |
48 | .make-grid-columns();
49 |
50 |
51 | // Extra small grid
52 | //
53 | // Columns, offsets, pushes, and pulls for extra small devices like
54 | // smartphones.
55 |
56 | .make-grid(xs);
57 |
58 |
59 | // Small grid
60 | //
61 | // Columns, offsets, pushes, and pulls for the small device range, from phones
62 | // to tablets.
63 |
64 | @media (min-width: @screen-sm-min) {
65 | .make-grid(sm);
66 | }
67 |
68 |
69 | // Medium grid
70 | //
71 | // Columns, offsets, pushes, and pulls for the desktop device range.
72 |
73 | @media (min-width: @screen-md-min) {
74 | .make-grid(md);
75 | }
76 |
77 |
78 | // Large grid
79 | //
80 | // Columns, offsets, pushes, and pulls for the large desktop device range.
81 |
82 | @media (min-width: @screen-lg-min) {
83 | .make-grid(lg);
84 | }
85 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/wrap.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./core",
3 | "./core/init",
4 | "./manipulation", // clone
5 | "./traversing" // parent, contents
6 | ], function( jQuery ) {
7 |
8 | "use strict";
9 |
10 | jQuery.fn.extend( {
11 | wrapAll: function( html ) {
12 | var wrap;
13 |
14 | if ( this[ 0 ] ) {
15 | if ( jQuery.isFunction( html ) ) {
16 | html = html.call( this[ 0 ] );
17 | }
18 |
19 | // The elements to wrap the target around
20 | wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
21 |
22 | if ( this[ 0 ].parentNode ) {
23 | wrap.insertBefore( this[ 0 ] );
24 | }
25 |
26 | wrap.map( function() {
27 | var elem = this;
28 |
29 | while ( elem.firstElementChild ) {
30 | elem = elem.firstElementChild;
31 | }
32 |
33 | return elem;
34 | } ).append( this );
35 | }
36 |
37 | return this;
38 | },
39 |
40 | wrapInner: function( html ) {
41 | if ( jQuery.isFunction( html ) ) {
42 | return this.each( function( i ) {
43 | jQuery( this ).wrapInner( html.call( this, i ) );
44 | } );
45 | }
46 |
47 | return this.each( function() {
48 | var self = jQuery( this ),
49 | contents = self.contents();
50 |
51 | if ( contents.length ) {
52 | contents.wrapAll( html );
53 |
54 | } else {
55 | self.append( html );
56 | }
57 | } );
58 | },
59 |
60 | wrap: function( html ) {
61 | var isFunction = jQuery.isFunction( html );
62 |
63 | return this.each( function( i ) {
64 | jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html );
65 | } );
66 | },
67 |
68 | unwrap: function( selector ) {
69 | this.parent( selector ).not( "body" ).each( function() {
70 | jQuery( this ).replaceWith( this.childNodes );
71 | } );
72 | return this;
73 | }
74 | } );
75 |
76 | return jQuery;
77 | } );
78 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/grunt/sauce_browsers.yml:
--------------------------------------------------------------------------------
1 | [
2 | # Docs: https://saucelabs.com/docs/platforms/webdriver
3 |
4 | {
5 | browserName: "safari",
6 | platform: "OS X 10.10"
7 | },
8 | {
9 | browserName: "chrome",
10 | platform: "OS X 10.10"
11 | },
12 | {
13 | browserName: "firefox",
14 | platform: "OS X 10.10"
15 | },
16 |
17 | # Mac Opera not currently supported by Sauce Labs
18 |
19 | {
20 | browserName: "internet explorer",
21 | version: "11",
22 | platform: "Windows 8.1"
23 | },
24 | {
25 | browserName: "internet explorer",
26 | version: "10",
27 | platform: "Windows 8"
28 | },
29 | {
30 | browserName: "internet explorer",
31 | version: "9",
32 | platform: "Windows 7"
33 | },
34 | {
35 | browserName: "internet explorer",
36 | version: "8",
37 | platform: "Windows 7"
38 | },
39 |
40 | # { # Unofficial
41 | # browserName: "internet explorer",
42 | # version: "7",
43 | # platform: "Windows XP"
44 | # },
45 |
46 | {
47 | browserName: "chrome",
48 | platform: "Windows 8.1"
49 | },
50 | {
51 | browserName: "firefox",
52 | platform: "Windows 8.1"
53 | },
54 |
55 | # Win Opera 15+ not currently supported by Sauce Labs
56 |
57 | {
58 | browserName: "iphone",
59 | platform: "OS X 10.10",
60 | version: "9.2"
61 | },
62 |
63 | # iOS Chrome not currently supported by Sauce Labs
64 |
65 | # Linux (unofficial)
66 | {
67 | browserName: "chrome",
68 | platform: "Linux"
69 | },
70 | {
71 | browserName: "firefox",
72 | platform: "Linux"
73 | }
74 |
75 | # Android Chrome not currently supported by Sauce Labs
76 |
77 | # { # Android Browser (super-unofficial)
78 | # browserName: "android",
79 | # version: "4.0",
80 | # platform: "Linux"
81 | # }
82 | ]
83 |
--------------------------------------------------------------------------------
/webapp/src/main/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/webapp/application/graph/parser/SyntaxErrorException.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.webapp.application.graph.parser;
2 |
3 | public class SyntaxErrorException extends Exception {
4 |
5 | /**
6 | *
7 | */
8 | private static final long serialVersionUID = 8022147874769647737L;
9 |
10 | protected String message;
11 |
12 | /**
13 | * SyntaxErrors are thrown whenever a graph file's syntax is invalid.
14 | *
15 | * @param currentLine
16 | * the line, where the error occured
17 | * @param currentColumn
18 | * the column, where the error occured
19 | * @param currentChar
20 | * the current character which caused the error
21 | */
22 | public SyntaxErrorException(int currentLine, int currentColumn, char currentChar) {
23 |
24 | if (currentChar == '\t' || currentChar == '\n' || currentChar == '\r')
25 | message = "Invalid tab, newline or return character in line " + currentLine + ", column " + currentColumn
26 | + ".\n";
27 | else
28 | message = "The graph contains an error in line " + currentLine + ", column " + currentColumn + ": "
29 | + currentChar + "\n";
30 | }
31 |
32 | /*
33 | * (non-Javadoc)
34 | *
35 | * @see java.lang.Throwable#getLocalizedMessage()
36 | */
37 | @Override
38 | public String getLocalizedMessage() {
39 | return message;
40 | }
41 |
42 | /*
43 | * (non-Javadoc)
44 | *
45 | * @see java.lang.Throwable#getMessage()
46 | */
47 | @Override
48 | public String getMessage() {
49 | return message;
50 | }
51 |
52 | /*
53 | * (non-Javadoc)
54 | *
55 | * @see java.lang.Throwable#toString()
56 | */
57 | @Override
58 | public String toString() {
59 | return message;
60 | }
61 |
62 | }
63 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/less/alerts.less:
--------------------------------------------------------------------------------
1 | //
2 | // Alerts
3 | // --------------------------------------------------
4 |
5 |
6 | // Base styles
7 | // -------------------------
8 |
9 | .alert {
10 | padding: @alert-padding;
11 | margin-bottom: @line-height-computed;
12 | border: 1px solid transparent;
13 | border-radius: @alert-border-radius;
14 |
15 | // Headings for larger alerts
16 | h4 {
17 | margin-top: 0;
18 | // Specified for the h4 to prevent conflicts of changing @headings-color
19 | color: inherit;
20 | }
21 |
22 | // Provide class for links that match alerts
23 | .alert-link {
24 | font-weight: @alert-link-font-weight;
25 | }
26 |
27 | // Improve alignment and spacing of inner content
28 | > p,
29 | > ul {
30 | margin-bottom: 0;
31 | }
32 |
33 | > p + p {
34 | margin-top: 5px;
35 | }
36 | }
37 |
38 | // Dismissible alerts
39 | //
40 | // Expand the right padding and account for the close button's positioning.
41 |
42 | .alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.
43 | .alert-dismissible {
44 | padding-right: (@alert-padding + 20);
45 |
46 | // Adjust close link position
47 | .close {
48 | position: relative;
49 | top: -2px;
50 | right: -21px;
51 | color: inherit;
52 | }
53 | }
54 |
55 | // Alternate styles
56 | //
57 | // Generate contextual modifier classes for colorizing the alert.
58 |
59 | .alert-success {
60 | .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text);
61 | }
62 |
63 | .alert-info {
64 | .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text);
65 | }
66 |
67 | .alert-warning {
68 | .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text);
69 | }
70 |
71 | .alert-danger {
72 | .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text);
73 | }
74 |
--------------------------------------------------------------------------------
/webapp/src/main/resources/configs/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/core/parseHTML.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../var/document",
4 | "./var/rsingleTag",
5 | "../manipulation/buildFragment",
6 |
7 | // This is the only module that needs core/support
8 | "./support"
9 | ], function( jQuery, document, rsingleTag, buildFragment, support ) {
10 |
11 | "use strict";
12 |
13 | // Argument "data" should be string of html
14 | // context (optional): If specified, the fragment will be created in this context,
15 | // defaults to document
16 | // keepScripts (optional): If true, will include scripts passed in the html string
17 | jQuery.parseHTML = function( data, context, keepScripts ) {
18 | if ( typeof data !== "string" ) {
19 | return [];
20 | }
21 | if ( typeof context === "boolean" ) {
22 | keepScripts = context;
23 | context = false;
24 | }
25 |
26 | var base, parsed, scripts;
27 |
28 | if ( !context ) {
29 |
30 | // Stop scripts or inline event handlers from being executed immediately
31 | // by using document.implementation
32 | if ( support.createHTMLDocument ) {
33 | context = document.implementation.createHTMLDocument( "" );
34 |
35 | // Set the base href for the created document
36 | // so any parsed elements with URLs
37 | // are based on the document's URL (gh-2965)
38 | base = context.createElement( "base" );
39 | base.href = document.location.href;
40 | context.head.appendChild( base );
41 | } else {
42 | context = document;
43 | }
44 | }
45 |
46 | parsed = rsingleTag.exec( data );
47 | scripts = !keepScripts && [];
48 |
49 | // Single tag
50 | if ( parsed ) {
51 | return [ context.createElement( parsed[ 1 ] ) ];
52 | }
53 |
54 | parsed = buildFragment( [ data ], context, scripts );
55 |
56 | if ( scripts && scripts.length ) {
57 | jQuery( scripts ).remove();
58 | }
59 |
60 | return jQuery.merge( [], parsed.childNodes );
61 | };
62 |
63 | return jQuery.parseHTML;
64 |
65 | } );
66 |
--------------------------------------------------------------------------------
/graphs/src/main/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/graphs/LogEntry.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs;
2 |
3 | import java.util.Date;
4 |
5 | /**
6 | * Class modeling one log entry in the log file for user actions
7 | *
8 | * @author Alexander Gössl, Arwed Gölz, Ramy Hcini, Sebastian Vollbrecht
9 | */
10 | public class LogEntry {
11 |
12 | public final static String NO_RESULTS = "NO_RESULTS";
13 |
14 | private Date date;
15 | private String user_id;
16 | private String collection_id;
17 | private UserAction action;
18 | private String message;
19 |
20 | private boolean isUserActionEntry;
21 |
22 | /**
23 | * Create a new instance of log entry, thereby creating one new line in the
24 | * log
25 | *
26 | * @param user_id
27 | * The ID of the user causing this entry
28 | * @param action
29 | * The user action causing this entry
30 | * @param message
31 | * A string describing what was done
32 | */
33 | public LogEntry(String user_id, UserAction action, String message) {
34 | this.date = new Date();
35 | this.user_id = user_id;
36 | this.action = action;
37 | this.message = message;
38 |
39 | isUserActionEntry = true;
40 | }
41 |
42 | public UserAction getAction() {
43 | return action;
44 | }
45 |
46 | public String getMessage() {
47 | return message;
48 | }
49 |
50 | public String getUserID() {
51 | return user_id;
52 | }
53 |
54 | public String getCollectionID() {
55 | return collection_id;
56 | }
57 |
58 | public void setCollection(String c) {
59 | collection_id = c;
60 | }
61 |
62 | @Override
63 | public String toString() {
64 | if (isUserActionEntry) {
65 | return date + "," + user_id + "," + action + "," + message;
66 | } else {
67 | return date + "," + user_id + "," + message;
68 | }
69 | }
70 | }
71 |
--------------------------------------------------------------------------------
/graphs-ne-impl/README.md:
--------------------------------------------------------------------------------
1 | # Graph-based Document Exploration
2 | ## graphs-ne-impl module
3 |
4 | This module is an example implementation of a graph extraction module. It uses Stanford NER to identify entities and extracts graphs based on co-occurrences.
5 |
6 | ### Implementation
7 |
8 | The implementation uses DKPro, a UIMA-based framework that provides access to a variety of linguistic annotation tools, such as Stanford NER. Document collections are preprocessed with it and the annotated data is used an runtime.
9 |
10 | ### Usage
11 |
12 | When adding a new document collection, it has to be preprocessed with `PipelinePreprocessing.java`. Documents with annotations are then serialized as *.bin6-files in the document collection folder and accessed by this module at runtime.
13 |
14 | ### Create your own graph extraction module
15 |
16 | Please follow these steps to add a new graph extraction module:
17 |
18 | 1. Create a new Maven module and add the `graphs` module as a dependency.
19 | 1. In that module, create a class that implements `de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs.IGraphGenerator`.
20 | * `initialize` is called once when the graph extractor is initialized and provides the documents returned by the search and the path to the document collection's fils.
21 | * `addUserAction` is called whenever a user action is reported to the server. The graph extractor can use this information to modify the current graph, if that's desired.
22 | * `getGraph` can be called by the framework at any time and should return the current state of the extracted graph.
23 | * Please refer to `StaticEntityGraph` and `DynamicEntityGraph` for example implementations.
24 | 1. Add your new module as a dependency to the `webapp` module.
25 | 1. In the webapp's `collections.xml`, assign your new class to a document collection.
26 | 1. Build and redeploy the webapp.
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/indexer/src/main/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/indexer/application/SolrArgumentsHandler.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.indexer.application;
2 |
3 | import java.io.IOException;
4 | import java.nio.file.Path;
5 | import java.nio.file.Paths;
6 | import java.util.HashMap;
7 |
8 |
9 | /**
10 | * Concrete implementation of the interface IArgumentsHandler
11 | * for Solr arguments
12 | * @author Ramy Hcini
13 | * @since 20 Dec 2016
14 | * @version 1.0
15 | */
16 | public class SolrArgumentsHandler implements IArgumentsHandler {
17 | /**
18 | * directory path
19 | */
20 | private Path directoryPath ;
21 |
22 | private HashMap specialArgs = new HashMap();
23 |
24 | /**
25 | * solr server url
26 | */
27 | private String serverUrl ;
28 |
29 | final private int nbOfArgs = 3 ;
30 |
31 | public SolrArgumentsHandler() {
32 | // DEFAULT VALUES
33 | directoryPath = Paths.get("data") ;
34 | specialArgs.put("groupID", "default") ;
35 | }
36 |
37 | @Override
38 | public void setArguments(String[] args) {
39 | // 2. argument = directory path
40 | String directoryName = args[1] ;
41 | try {
42 | directoryPath = Paths.get(directoryName).toRealPath();
43 | } catch (IOException e) {
44 | e.printStackTrace();
45 | }
46 |
47 | // 3. argument = groupID
48 | specialArgs.put("groupID",args[2]) ;
49 | }
50 |
51 | @Override
52 | public Path getDirectoryPath() {
53 | return directoryPath;
54 | }
55 |
56 | @Override
57 | public int getNbOfArgs() {
58 | return nbOfArgs;
59 | }
60 |
61 | @Override
62 | public void setServerUrl(String url) {
63 | serverUrl = url ;
64 | }
65 |
66 | @Override
67 | public String getServerUrl() {
68 | return serverUrl;
69 | }
70 |
71 | @Override
72 | public String get(String key) {
73 | return specialArgs.get(key) ;
74 | }
75 |
76 | }
77 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/css/curCSS.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "./var/rnumnonpx",
4 | "./var/rmargin",
5 | "./var/getStyles",
6 | "./support",
7 | "../selector" // Get jQuery.contains
8 | ], function( jQuery, rnumnonpx, rmargin, getStyles, support ) {
9 |
10 | "use strict";
11 |
12 | function curCSS( elem, name, computed ) {
13 | var width, minWidth, maxWidth, ret,
14 |
15 | // Support: Firefox 51+
16 | // Retrieving style before computed somehow
17 | // fixes an issue with getting wrong values
18 | // on detached elements
19 | style = elem.style;
20 |
21 | computed = computed || getStyles( elem );
22 |
23 | // getPropertyValue is needed for:
24 | // .css('filter') (IE 9 only, #12537)
25 | // .css('--customProperty) (#3144)
26 | if ( computed ) {
27 | ret = computed.getPropertyValue( name ) || computed[ name ];
28 |
29 | if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
30 | ret = jQuery.style( elem, name );
31 | }
32 |
33 | // A tribute to the "awesome hack by Dean Edwards"
34 | // Android Browser returns percentage for some values,
35 | // but width seems to be reliably pixels.
36 | // This is against the CSSOM draft spec:
37 | // https://drafts.csswg.org/cssom/#resolved-values
38 | if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) {
39 |
40 | // Remember the original values
41 | width = style.width;
42 | minWidth = style.minWidth;
43 | maxWidth = style.maxWidth;
44 |
45 | // Put in the new values to get a computed value out
46 | style.minWidth = style.maxWidth = style.width = ret;
47 | ret = computed.width;
48 |
49 | // Revert the changed values
50 | style.width = width;
51 | style.minWidth = minWidth;
52 | style.maxWidth = maxWidth;
53 | }
54 | }
55 |
56 | return ret !== undefined ?
57 |
58 | // Support: IE <=9 - 11 only
59 | // IE returns zIndex value as an integer.
60 | ret + "" :
61 | ret;
62 | }
63 |
64 | return curCSS;
65 | } );
66 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/dimensions.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "./core",
3 | "./core/access",
4 | "./css"
5 | ], function( jQuery, access ) {
6 |
7 | "use strict";
8 |
9 | // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
10 | jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
11 | jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
12 | function( defaultExtra, funcName ) {
13 |
14 | // Margin is only for outerHeight, outerWidth
15 | jQuery.fn[ funcName ] = function( margin, value ) {
16 | var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
17 | extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
18 |
19 | return access( this, function( elem, type, value ) {
20 | var doc;
21 |
22 | if ( jQuery.isWindow( elem ) ) {
23 |
24 | // $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)
25 | return funcName.indexOf( "outer" ) === 0 ?
26 | elem[ "inner" + name ] :
27 | elem.document.documentElement[ "client" + name ];
28 | }
29 |
30 | // Get document width or height
31 | if ( elem.nodeType === 9 ) {
32 | doc = elem.documentElement;
33 |
34 | // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
35 | // whichever is greatest
36 | return Math.max(
37 | elem.body[ "scroll" + name ], doc[ "scroll" + name ],
38 | elem.body[ "offset" + name ], doc[ "offset" + name ],
39 | doc[ "client" + name ]
40 | );
41 | }
42 |
43 | return value === undefined ?
44 |
45 | // Get width or height on the element, requesting but not forcing parseFloat
46 | jQuery.css( elem, type, extra ) :
47 |
48 | // Set width or height on the element
49 | jQuery.style( elem, type, value, extra );
50 | }, type, chainable ? margin : undefined, chainable );
51 | };
52 | } );
53 | } );
54 |
55 | return jQuery;
56 | } );
57 |
--------------------------------------------------------------------------------
/graphs-ne-impl/src/test/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/graph_ne_impl/Test.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.graph_ne_impl;
2 |
3 | import java.io.File;
4 | import java.io.IOException;
5 | import java.util.ArrayList;
6 | import java.util.List;
7 |
8 | import org.apache.commons.io.FileUtils;
9 |
10 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs.Graph;
11 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs.IGraphGenerator;
12 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs.SearchResult;
13 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs_ne_impl.StaticEntityGraph;
14 |
15 | public class Test {
16 |
17 | public static void main(String[] args) {
18 |
19 | String collection = "enron_persons\\";
20 |
21 | // create search results for test
22 | List results = new ArrayList();
23 | File folder = new File("..\\webapp\\src\\main\\resources\\data\\" + collection);
24 | for (File f : folder.listFiles()) {
25 | if (f.getName().matches(".*txt")) {
26 | try {
27 | String text = FileUtils.readFileToString(f, "utf-8");
28 | SearchResult doc = new SearchResult(f.getName().substring(0, f.getName().lastIndexOf('.')), "",
29 | text);
30 | results.add(doc);
31 | } catch (IOException e) {
32 | e.printStackTrace();
33 | }
34 | }
35 | }
36 | System.out.println("docs: " + results.size());
37 |
38 | // call the interface
39 | IGraphGenerator generator = new StaticEntityGraph();
40 | String[] params = { "PERSON", "99999", "99999", "3" };
41 | generator.initialize(results,
42 | "C:\\Users\\falke\\EclipseWorkspace\\graph-doc-explorer\\webapp\\src\\main\\resources\\data\\"
43 | + collection,
44 | params);
45 |
46 | Graph graph = generator.getGraph();
47 |
48 | System.out.println("nodes: " + graph.nodes().size());
49 | System.out.println("edges: " + graph.edges().size());
50 |
51 | }
52 |
53 | }
54 |
--------------------------------------------------------------------------------
/webapp/src/test/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/webapp/application/graph/filter/NodesInScopeFilterTest.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.webapp.application.graph.filter;
2 |
3 | import static org.junit.Assert.assertEquals;
4 |
5 | import java.util.HashMap;
6 | import java.util.LinkedList;
7 | import java.util.List;
8 |
9 | import org.junit.Test;
10 |
11 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs.Graph;
12 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs.GraphEdge;
13 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs.GraphNode;
14 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs.SearchResult;
15 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.webapp.application.graph.parser.SampleDataParser;
16 |
17 | public class NodesInScopeFilterTest {
18 |
19 | private Graph graph;
20 |
21 | private List getSearchResults() {
22 | List results = new LinkedList();
23 | results.add(
24 | new SearchResult("a.txt", "highlight", "The test query's results only contain the document 'a.txt'."));
25 | return results;
26 | }
27 |
28 | private void parseGraphFile() {
29 | SampleDataParser p = new SampleDataParser();
30 | p.setSrc("/graph/filterTest.graph");
31 | p.parse();
32 | graph = p.getGraph();
33 | }
34 |
35 | @Test
36 | public void testCreateEdgesList() {
37 |
38 | parseGraphFile();
39 |
40 | List searchResults = this.getSearchResults();
41 |
42 | NodesInScopeFilter nodesInScopeFilter = new NodesInScopeFilter(searchResults, graph);
43 |
44 | // should only contain nodes: Alex, Ramy, Basti
45 | HashMap graphNodes = nodesInScopeFilter.createNodesList();
46 | assertEquals(3, graphNodes.size());
47 |
48 | // should only contain edges: Alex-Ramy, Alex-Basti
49 | List graphEdges = nodesInScopeFilter.createEdgesList();
50 | assertEquals(2, graphEdges.size());
51 | }
52 |
53 | }
54 |
--------------------------------------------------------------------------------
/graphs/src/main/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/graphs/Graph.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs;
2 |
3 | import java.util.HashSet;
4 | import java.util.LinkedList;
5 | import java.util.List;
6 | import java.util.Map;
7 | import java.util.Set;
8 |
9 | /**
10 | * This class models a Graph including Nodes and Edges
11 | *
12 | * @author Alexander Gössl, Arwed Gölz, Ramy Hcini, Sebastian Vollbrecht
13 | * @since 20 Jan 2017
14 | * @version 1.3
15 | */
16 | public class Graph {
17 |
18 | private List nodes;
19 | private List edges;
20 | private boolean directed;
21 |
22 | public Graph() {
23 | nodes = new LinkedList();
24 | edges = new LinkedList();
25 | directed = true;
26 | }
27 |
28 | /**
29 | * Construct a graph instance
30 | *
31 | * @param nodes
32 | * as a map of nodeID (as String) -> node (as GraphNode)
33 | * @param edges
34 | */
35 | public Graph(Map nodes, List edges) {
36 | this.nodes = new LinkedList(nodes.values());
37 | this.edges = edges;
38 | }
39 |
40 | public boolean isDirected() {
41 | return directed;
42 | }
43 |
44 | public void setDirected(boolean dir) {
45 | directed = dir;
46 | }
47 |
48 | public List nodes() {
49 | return nodes;
50 | }
51 |
52 | public List edges() {
53 | return edges;
54 | }
55 |
56 | public void addNode(GraphNode node) {
57 | nodes.add(node);
58 | }
59 |
60 | public void addEdge(GraphEdge edge) {
61 | edges.add(edge);
62 | }
63 |
64 | public void removeNode(GraphNode node) {
65 | this.nodes.remove(node);
66 | Set toRemove = new HashSet();
67 |
68 | for (GraphEdge e : this.edges)
69 | if (e.getSource().equals(node.id()) || e.getTarget().equals(node.id()))
70 | toRemove.add(e);
71 |
72 | this.edges.removeAll(toRemove);
73 | }
74 |
75 | public void removeEdge(GraphEdge edge) {
76 | this.edges.remove(edge);
77 | }
78 | }
79 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/bootstrap/js/transition.js:
--------------------------------------------------------------------------------
1 | /* ========================================================================
2 | * Bootstrap: transition.js v3.3.7
3 | * http://getbootstrap.com/javascript/#transitions
4 | * ========================================================================
5 | * Copyright 2011-2016 Twitter, Inc.
6 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
7 | * ======================================================================== */
8 |
9 |
10 | +function ($) {
11 | 'use strict';
12 |
13 | // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
14 | // ============================================================
15 |
16 | function transitionEnd() {
17 | var el = document.createElement('bootstrap')
18 |
19 | var transEndEventNames = {
20 | WebkitTransition : 'webkitTransitionEnd',
21 | MozTransition : 'transitionend',
22 | OTransition : 'oTransitionEnd otransitionend',
23 | transition : 'transitionend'
24 | }
25 |
26 | for (var name in transEndEventNames) {
27 | if (el.style[name] !== undefined) {
28 | return { end: transEndEventNames[name] }
29 | }
30 | }
31 |
32 | return false // explicit for ie8 ( ._.)
33 | }
34 |
35 | // http://blog.alexmaccaw.com/css-transitions
36 | $.fn.emulateTransitionEnd = function (duration) {
37 | var called = false
38 | var $el = this
39 | $(this).one('bsTransitionEnd', function () { called = true })
40 | var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
41 | setTimeout(callback, duration)
42 | return this
43 | }
44 |
45 | $(function () {
46 | $.support.transition = transitionEnd()
47 |
48 | if (!$.support.transition) return
49 |
50 | $.event.special.bsTransitionEnd = {
51 | bindType: $.support.transition.end,
52 | delegateType: $.support.transition.end,
53 | handle: function (e) {
54 | if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
55 | }
56 | }
57 | })
58 |
59 | }(jQuery);
60 |
--------------------------------------------------------------------------------
/graphs/src/main/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/graphs/GraphEdge.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs;
2 |
3 | /**
4 | * A class that models a graph edge
5 | *
6 | * @author Alexander Gössl, Arwed Gölz, Ramy Hcini, Sebastian Vollbrecht
7 | * @since 20 Jan 2017
8 | * @version 1.4
9 | */
10 | public class GraphEdge {
11 | private String id;
12 | private Label label;
13 | /**
14 | * Source node ID
15 | */
16 | private GraphNode source;
17 | /**
18 | * Target node ID
19 | */
20 | private GraphNode target;
21 |
22 | final private transient String NO_SOURCE_NODE = "null";
23 | final private transient String NO_TARGET_NODE = "null";
24 |
25 | /**
26 | * Creates a new GraphEdge, consisting of a source node, a target node and
27 | * the name of the edge
28 | * Generate an ID
29 | *
30 | * @param sourceNode
31 | * the source GraphNode
32 | * @param targetNode
33 | * the target GraphNode
34 | * @param label
35 | * the edge's label
36 | */
37 | public GraphEdge(GraphNode sourceNode, GraphNode targetNode, Label _label) {
38 | this.source = sourceNode;
39 | this.target = targetNode;
40 | // construct id : concatenate sourceID and targetID with an underscore.
41 | this.id = this.source.id() + "_" + this.target.id();
42 | this.label = _label;
43 | }
44 |
45 | public String id() {
46 | return id;
47 | }
48 |
49 | public void setId() {
50 | this.id = this.source.id() + "_" + this.target.id();
51 | }
52 |
53 | public GraphNode getSource() {
54 | return source;
55 | }
56 |
57 | public void setSource(GraphNode node) {
58 | this.source = node;
59 | this.setId();
60 | }
61 |
62 | public GraphNode getTarget() {
63 | return target;
64 | }
65 |
66 | public void setTarget(GraphNode node) {
67 | this.target = node;
68 | this.setId();
69 | }
70 |
71 | public Label label() {
72 | return label;
73 | }
74 |
75 | @Override
76 | public String toString() {
77 | return source + "-" + target;
78 | }
79 | }
80 |
--------------------------------------------------------------------------------
/indexer/src/main/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/indexer/application/SolrIndexer.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.indexer.application;
2 |
3 | import java.io.IOException;
4 | import java.nio.file.DirectoryStream;
5 | import java.nio.file.Files;
6 | import java.nio.file.Path;
7 |
8 | import org.apache.commons.io.Charsets;
9 | import org.apache.commons.io.FileUtils;
10 | import org.apache.solr.client.solrj.SolrClient;
11 | import org.apache.solr.client.solrj.SolrServerException;
12 | import org.apache.solr.client.solrj.impl.HttpSolrClient;
13 | import org.apache.solr.common.SolrInputDocument;
14 |
15 | public class SolrIndexer implements IDocumentIndexer {
16 | @Override
17 | public void indexDocuments(IArgumentsHandler handler) {
18 | Path directory = handler.getDirectoryPath();
19 | String urlString = handler.getServerUrl();
20 |
21 | try (DirectoryStream stream = Files.newDirectoryStream(directory, "*.txt")) {
22 | SolrClient solr = new HttpSolrClient.Builder(urlString).build();
23 | for (Path entry : stream) {
24 | System.out.println("Indexing the file " + entry.getFileName());
25 |
26 | SolrInputDocument doc = new SolrInputDocument();
27 | String fileName = entry.getFileName().toString();
28 | String groupID = handler.get("groupID");
29 | String text = FileUtils.readFileToString(entry.toFile(), Charsets.UTF_8);
30 |
31 | doc.addField("id", groupID + "_" + fileName);
32 | doc.addField("name", fileName.substring(0, fileName.lastIndexOf('.')));
33 | doc.addField("groupID", groupID);
34 | doc.addField("dc_text", text);
35 | doc.addField("path", directory);
36 |
37 | try {
38 | solr.add(doc);
39 | } catch (SolrServerException e) {
40 | e.printStackTrace();
41 | }
42 | }
43 | try {
44 | // commit changes
45 | solr.commit();
46 | } catch (SolrServerException e) {
47 | e.printStackTrace();
48 | }
49 | } catch (IOException x) {
50 | // it can only be thrown by newDirectoryStream.
51 | System.err.println(x);
52 | }
53 | }
54 |
55 | }
56 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/angular/README.md:
--------------------------------------------------------------------------------
1 | # packaged angular
2 |
3 | This repo is for distribution on `npm` and `bower`. The source for this module is in the
4 | [main AngularJS repo](https://github.com/angular/angular.js).
5 | Please file issues and pull requests against that repo.
6 |
7 | ## Install
8 |
9 | You can install this package either with `npm` or with `bower`.
10 |
11 | ### npm
12 |
13 | ```shell
14 | npm install angular
15 | ```
16 |
17 | Then add a `
21 | ```
22 |
23 | Or `require('angular')` from your code.
24 |
25 | ### bower
26 |
27 | ```shell
28 | bower install angular
29 | ```
30 |
31 | Then add a `
35 | ```
36 |
37 | ## Documentation
38 |
39 | Documentation is available on the
40 | [AngularJS docs site](http://docs.angularjs.org/).
41 |
42 | ## License
43 |
44 | The MIT License
45 |
46 | Copyright (c) 2010-2015 Google, Inc. http://angularjs.org
47 |
48 | Permission is hereby granted, free of charge, to any person obtaining a copy
49 | of this software and associated documentation files (the "Software"), to deal
50 | in the Software without restriction, including without limitation the rights
51 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
52 | copies of the Software, and to permit persons to whom the Software is
53 | furnished to do so, subject to the following conditions:
54 |
55 | The above copyright notice and this permission notice shall be included in
56 | all copies or substantial portions of the Software.
57 |
58 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
59 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
60 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
61 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
62 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
63 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
64 | THE SOFTWARE.
65 |
--------------------------------------------------------------------------------
/webapp/README.md:
--------------------------------------------------------------------------------
1 | # Graph-based Document Exploration
2 | ## webapp module
3 |
4 | This module contains backend and frontend parts of the web application.
5 |
6 | ### Configuration
7 |
8 | Folder `src/main/resource/configs` contains two central configuration files:
9 |
10 | * `collections.xml` Definition of document collections and assignment of graph generation modules.
11 | * `config.xml` General settings.
12 |
13 | ### Build
14 |
15 | The whole build process and all Java dependencies are managed by Maven. During a build, NPM and Bower will be automatically downloaded to take care of the dependency management for the frontend code. As a result, a war file will be generated that can be deployed on a web server (e.g. Tomcat).
16 |
17 | ### Installation
18 |
19 | Please follow these steps to setup the system with the default configuration and demo collections:
20 |
21 | 1. Install Tomcat (or alternative Java web server)
22 | 1. Install solr and start solr (`bin/solr start`)
23 | 1. Create a new core with `bin/solr create -c documents`
24 | 1. Using solr web interface, create the following fields in the new core (select the core, then go to `Schema` and click `Add field`)
25 | * Name: dc_text, Type: text_general, Properties: indexed, required, stored
26 | * Name: groupID, Type: string, Properties: indexed, required, stored
27 | * Name: path, Type: string, Properties: indexed, required, stored
28 | 1. Index all documents of the demo collections with solr. Example:
29 | * `document-indexer config.xml data/enron_orgs enron-orgs`
30 | Please make sure that the collections name defined during indexing (last parameter) match those used in the `collections.xml` configuration file. For more infos on indexing, please refer to `indexer/README`.
31 | 1. Deploy the war file created during the build process to Tomcat.
32 | 1. Open the application in your Browser (preferably Chrome).
33 |
34 | ### Project Structure
35 |
36 | The most important code lives here:
37 | * `src/main/java` Java code for backend
38 | * `src/main/resource/configs` configuration files
39 | * `src/main/resource/data` data of demo collections
40 | * `src/main/webapp` code of frontend
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/webapp/src/main/java/de/tudarmstadt/ukp/exploration/graph_doc_explorer/webapp/application/graph/FileGraphGenerator.java:
--------------------------------------------------------------------------------
1 | package de.tudarmstadt.ukp.exploration.graph_doc_explorer.webapp.application.graph;
2 |
3 | import java.util.List;
4 |
5 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs.Graph;
6 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs.IGraphGenerator;
7 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs.LogEntry;
8 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.graphs.SearchResult;
9 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.webapp.application.graph.filter.IGraphFilter;
10 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.webapp.application.graph.filter.NodesInScopeFilter;
11 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.webapp.application.graph.parser.IGraphParser;
12 | import de.tudarmstadt.ukp.exploration.graph_doc_explorer.webapp.application.graph.parser.SampleDataParser;
13 |
14 | /**
15 | * A dummy graph generator implementing the graph generator interface to
16 | * just for the developement phase. Later we will use the generator of the
17 | * Client
18 | *
19 | * @author Alexander Gössl, Arwed Gölz, Ramy Hcini, Sebastian Vollbrecht
20 | * @since 20 Jan 2017
21 | * @version 1.0
22 | */
23 | @SuppressWarnings("deprecation")
24 | public class FileGraphGenerator implements IGraphGenerator {
25 | IGraphFilter filter;
26 | IGraphParser parser;
27 | Graph g;
28 |
29 | @Override
30 | public void initialize(List searchResults, String folder, String[] args) {
31 | System.out.println("init: " + this.getClass().getSimpleName());
32 | SampleDataParser parser = new SampleDataParser();
33 | if (folder != null) {
34 | parser.setSrc(folder + "graph");
35 | }
36 | filter = new NodesInScopeFilter();
37 | parser.parse();
38 | g = filter.filter(searchResults, parser.getGraph());
39 | g.setDirected(true);
40 | }
41 |
42 | @Override
43 | public void addUserAction(LogEntry userAction) {
44 | // TODO Auto-generated method stub
45 |
46 | }
47 |
48 | @Override
49 | public Graph getGraph() {
50 | return g;
51 | }
52 |
53 | }
54 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/ajax/load.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../core/stripAndCollapse",
4 | "../core/parseHTML",
5 | "../ajax",
6 | "../traversing",
7 | "../manipulation",
8 | "../selector"
9 | ], function( jQuery, stripAndCollapse ) {
10 |
11 | "use strict";
12 |
13 | /**
14 | * Load a url into a page
15 | */
16 | jQuery.fn.load = function( url, params, callback ) {
17 | var selector, type, response,
18 | self = this,
19 | off = url.indexOf( " " );
20 |
21 | if ( off > -1 ) {
22 | selector = stripAndCollapse( url.slice( off ) );
23 | url = url.slice( 0, off );
24 | }
25 |
26 | // If it's a function
27 | if ( jQuery.isFunction( params ) ) {
28 |
29 | // We assume that it's the callback
30 | callback = params;
31 | params = undefined;
32 |
33 | // Otherwise, build a param string
34 | } else if ( params && typeof params === "object" ) {
35 | type = "POST";
36 | }
37 |
38 | // If we have elements to modify, make the request
39 | if ( self.length > 0 ) {
40 | jQuery.ajax( {
41 | url: url,
42 |
43 | // If "type" variable is undefined, then "GET" method will be used.
44 | // Make value of this field explicit since
45 | // user can override it through ajaxSetup method
46 | type: type || "GET",
47 | dataType: "html",
48 | data: params
49 | } ).done( function( responseText ) {
50 |
51 | // Save response for use in complete callback
52 | response = arguments;
53 |
54 | self.html( selector ?
55 |
56 | // If a selector was specified, locate the right elements in a dummy div
57 | // Exclude scripts to avoid IE 'Permission Denied' errors
58 | jQuery( "" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :
59 |
60 | // Otherwise use the full result
61 | responseText );
62 |
63 | // If the request succeeds, this function gets "data", "status", "jqXHR"
64 | // but they are ignored because response was set above.
65 | // If it fails, this function gets "jqXHR", "status", "error"
66 | } ).always( callback && function( jqXHR, status ) {
67 | self.each( function() {
68 | callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );
69 | } );
70 | } );
71 | }
72 |
73 | return this;
74 | };
75 |
76 | } );
77 |
--------------------------------------------------------------------------------
/webapp/src/main/webapp/vendor/jquery/src/css/adjustCSS.js:
--------------------------------------------------------------------------------
1 | define( [
2 | "../core",
3 | "../var/rcssNum"
4 | ], function( jQuery, rcssNum ) {
5 |
6 | "use strict";
7 |
8 | function adjustCSS( elem, prop, valueParts, tween ) {
9 | var adjusted,
10 | scale = 1,
11 | maxIterations = 20,
12 | currentValue = tween ?
13 | function() {
14 | return tween.cur();
15 | } :
16 | function() {
17 | return jQuery.css( elem, prop, "" );
18 | },
19 | initial = currentValue(),
20 | unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
21 |
22 | // Starting value computation is required for potential unit mismatches
23 | initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
24 | rcssNum.exec( jQuery.css( elem, prop ) );
25 |
26 | if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
27 |
28 | // Trust units reported by jQuery.css
29 | unit = unit || initialInUnit[ 3 ];
30 |
31 | // Make sure we update the tween properties later on
32 | valueParts = valueParts || [];
33 |
34 | // Iteratively approximate from a nonzero starting point
35 | initialInUnit = +initial || 1;
36 |
37 | do {
38 |
39 | // If previous iteration zeroed out, double until we get *something*.
40 | // Use string for doubling so we don't accidentally see scale as unchanged below
41 | scale = scale || ".5";
42 |
43 | // Adjust and apply
44 | initialInUnit = initialInUnit / scale;
45 | jQuery.style( elem, prop, initialInUnit + unit );
46 |
47 | // Update scale, tolerating zero or NaN from tween.cur()
48 | // Break the loop if scale is unchanged or perfect, or if we've just had enough.
49 | } while (
50 | scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations
51 | );
52 | }
53 |
54 | if ( valueParts ) {
55 | initialInUnit = +initialInUnit || +initial || 0;
56 |
57 | // Apply relative offset (+=/-=) if specified
58 | adjusted = valueParts[ 1 ] ?
59 | initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
60 | +valueParts[ 2 ];
61 | if ( tween ) {
62 | tween.unit = unit;
63 | tween.start = initialInUnit;
64 | tween.end = adjusted;
65 | }
66 | }
67 | return adjusted;
68 | }
69 |
70 | return adjustCSS;
71 | } );
72 |
--------------------------------------------------------------------------------