Skip to content

Commit

Permalink
Merge branch 'develop' into feature/wercker-integration
Browse files Browse the repository at this point in the history
  • Loading branch information
leipert committed Aug 18, 2014
2 parents a5b9575 + ad4ea10 commit 51c71a5
Show file tree
Hide file tree
Showing 28 changed files with 290 additions and 69 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,5 @@ target
.idea
node_modules/
coverage/
dist
index.html
12 changes: 9 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,18 @@ Now you can run `gulp` to see if the tests complete as well as results for code

TODO: add explanation here

Run `gulp browserify`. Then this minimal example using JQuery and Bluebird works:

```html
<html>
<head>
<script src="resources/libs/jassa/0.5.0/jassa.js"></script>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/bluebird/1.2.2/bluebird.min.js"></script>

<!--<script src="dist/jassa.min.js"></script>-->
<script src="dist/jassa.js"></script>

<script type="text/javascript">
<script type="text/javascript">
// Init jassa with native promise and jquery.ajax
var jassa = new Jassa(Promise, $.ajax);
Expand Down
14 changes: 10 additions & 4 deletions bower.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
{
"name": "jassa",
"version": "0.0.4-SNAPSHOT",
"version": "0.6.0",
"homepage": "https://github.com/GeoKnow/Jassa",
"authors": [
"Claus Stadler <cstadler@informatik.uni-leipzig.de>"
],
"description": "JAvascript Suite for Sparql Access",
"main": "jassa.js",
"main": "dist/jassa.js",
"repository": {
"type": "git",
"url": "git://github.com/GeoKnow/Jassa-Core.git"
},
"dependencies": {
},
"keywords": [
Expand All @@ -22,9 +26,11 @@
"license": "MIT",
"ignore": [
"**/.*",
"coverage",
"gulp",
"lib",
"node_modules",
"bower_components",
"test",
"tests"
"to-port"
]
}
7 changes: 7 additions & 0 deletions gulp/tasks/browserify-min.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
var gulp = require('gulp');
var shell = require('gulp-shell');

module.exports = {
deps: ['browserify-normal'],
work: shell.task('./node_modules/.bin/uglifyjs ./dist/jassa.js -m -r \'module,define,Jassa,$super\' -o ./dist/jassa.min.js')
};
13 changes: 13 additions & 0 deletions gulp/tasks/browserify-normal.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
var gulp = require('gulp');
var browserify = require('browserify');
var source = require('vinyl-source-stream');

module.exports = function() {
var bundler = browserify().add('./lib/standalone.js');

return bundler.bundle()
// Pass desired output filename to vinyl-source-stream
.pipe(source('jassa.js'))
// Start piping stream to tasks!
.pipe(gulp.dest('./dist/'));
};
20 changes: 0 additions & 20 deletions gulp/tasks/browserify.js

This file was deleted.

2 changes: 1 addition & 1 deletion gulp/tasks/coveralls.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,5 @@ module.exports = {
.pipe(istanbul.writeReports())
.pipe(shell('cat ./coverage/lcov.info | ./node_modules/.bin/coveralls')); // Creating the reports after tests runned
});
},
}
};
4 changes: 3 additions & 1 deletion gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,15 @@ var gulp = require('./gulp')([
'coverage',
'jscs',
'docs',
'browserify',
'browserify-normal',
'browserify-min',
'coveralls',
]);

//gulp.task('lint', ['jshint', 'jscs']);
gulp.task('lint', ['jshint']);
gulp.task('test', ['lint', 'mocha']);
gulp.task('fulltest', ['test', 'coverage', 'coveralls']);
gulp.task('browserify', ['browserify-normal', 'browserify-min']);
gulp.task('build', ['browserify']);
gulp.task('default', ['test']);
47 changes: 47 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/bluebird/1.2.2/bluebird.min.js"></script>
<script src="dist/jassa.js"></script>

<script type="text/javascript">
var jassa = new Jassa(Promise, $.ajax);
console.log("The Jassa object: ", jassa);

var rdf = jassa.rdf;
var vocab = jassa.vocab;
var sparql = jassa.sparql;
var service = jassa.service;

var s = rdf.NodeFactory.createVar("s");
var p = vocab.rdf.type;
var o = rdf.NodeFactory.createUri("http://example.org/ontology/MyClass");

var triple = new rdf.Triple(s, p, o);

console.log("Triple: " + triple);
console.log("Subject is a variable: " + triple.getSubject().isVariable());

var query = new sparql.Query();

query.setQueryPattern(new sparql.ElementTriplesBlock([triple]));
query.setQueryResultStar(true);
query.setLimit(10);

console.log("QueryString: " + query);

var sparqlService = new service.SparqlServiceHttp(
"http://dbpedia.org/sparql",
["http://dbpedia.org"]
);

var qe = sparqlService.createQueryExecution(query);
qe.setTimeout(5000); // timout in milliseconds

qe.execAny().then(function(data){

console.log(data);
});
</script>
</head>
</html>
10 changes: 6 additions & 4 deletions lib/facete/FacetUtils.js
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,8 @@ var FacetConceptUtils = {
var propertyVar = VarUtils.freshVar('p', varsMentioned);
var objectVar = VarUtils.freshVar('o', varsMentioned);

console.log('propertyVar: ' + propertyVar);

var triple = isInverse
? new Triple(facetVar, propertyVar, objectVar)
: triple = new Triple(objectVar, propertyVar, facetVar);
Expand Down Expand Up @@ -238,13 +240,13 @@ var FacetConceptUtils = {
}
});

// The first part of the result is formed by conceptItems for the constrained steps
var constrainedStepRelations = this.createStepRelations(facetNode, constrainedSteps);
// The first part of the result is formed by the constrained steps
var constrainedStepRelations = this.createStepRelations(facetConfig, path, constrainedSteps);
result.push.apply(result, constrainedStepRelations);

// Set up the concept for fetching facets of all concepts that were NOT constrained
//var genericConcept = facetFacadeNode.createConcept(true);
var genericRelation = this.createRelationFacets(path, isInverse, false);
var genericRelation = this.createRelationFacets(facetConfig, path, isInverse, false);

// Combine this with the user specified array of properties
var filterElement = this.createElementFilterBindVar(genericRelation.getSourceVar(), includeProperties, false);
Expand All @@ -256,7 +258,7 @@ var FacetConceptUtils = {
}

// Important: If there are no properties to include, we can drop the genericConcept
if(includeProperties.length > 0) {
if(includeProperties.length > 0 || isNegated) {
var genericStepRelation = new StepRelation(null, genericRelation);

result.push(genericStepRelation);
Expand Down
2 changes: 1 addition & 1 deletion lib/facete/Step.js
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ Step.fromJson = function(json) {

Step.parse = function(str) {
var result;
if(str.startsWith('<')) {
if(str.charAt('<') >= 0) {
result = new Step(str.substring(1), true);
} else {
result = new Step(str, false);
Expand Down
2 changes: 2 additions & 0 deletions lib/facete/StepRelation.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,5 @@ var StepRelation = Class.create({
},

});

module.exports = StepRelation;
17 changes: 15 additions & 2 deletions lib/facete/facet_service/FacetServiceSparql.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
var Class = require('../../ext/Class');

var Concept = require('../../sparql/Concept');
var ConceptUtils = require('../../sparql/ConceptUtils');

var ListServiceConcept = require('../../service/list_service/ListServiceConcept');
//var ListServiceConcept = require('../../service/list_service/ListServiceConcept');
var ListServiceSparqlQuery = require('../../service/list_service/ListServiceSparqlQuery');

var FacetService = require('./FacetService');
var FacetUtils = require('./../FacetUtils');
Expand All @@ -29,15 +31,26 @@ var FacetServiceSparql = Class.create(FacetService, {
// TODO We probably want a FacetRelationSupplier here:
// This object could then return different concepts for the paths
var relation = FacetUtils.createRelationFacets(this.facetConfig, path, isInverse);
console.log('CREATED RELATION: ' + relation);

var concept = new Concept(relation.getElement(), relation.getSourceVar());



var stepRelations = FacetUtils.createRelationsFacetValues(this.facetConfig, path, isInverse, [], true);
stepRelations.forEach(function(stepRelation) {
console.log('STEP RELATION: ' + stepRelation);
});

// TODO We could provide an extension point here to order the concept by some criteria


//var promise = self.fetchFacetValueCounts(path, isInverse, properties, false);

var result = new ListServiceConcept(this.sparqlService);
var query = ConceptUtils.createQueryList(concept);

var result = new ListServiceSparqlQuery(this.sparqlService, query, concept.getVar(), false);
//var result = new ListServiceConcept(this.sparqlService);
return result;
},

Expand Down
3 changes: 3 additions & 0 deletions lib/service/index.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
'use strict';

var ns = {
AjaxUtils: require('./AjaxUtils'),
BindingLookup: require('./BindingLookup'),
LookupServiceUtils: require('./LookupServiceUtils'),
PageExpandUtils: require('./PageExpandUtils'),
Expand All @@ -18,6 +19,7 @@ var ns = {
ListServiceConceptKeyLookup: require('./list_service/ListServiceConceptKeyLookup'),
ListServicePageExpand: require('./list_service/ListServicePageExpand'),
ListServiceSparqlQuery: require('./list_service/ListServiceSparqlQuery'),
ListServiceTransformConcept: require('./list_service/ListServiceTransformConcept'),
LookupService: require('./lookup_service/LookupService'),
LookupServiceBase: require('./lookup_service/LookupServiceBase'),
LookupServiceCache: require('./lookup_service/LookupServiceCache'),
Expand All @@ -43,6 +45,7 @@ var ns = {
SparqlService: require('./sparql_service/SparqlService'),
SparqlServiceBaseString: require('./sparql_service/SparqlServiceBaseString'),
SparqlServiceCache: require('./sparql_service/SparqlServiceCache'),
SparqlServiceConsoleLog: require('./sparql_service/SparqlServiceConsoleLog'),
SparqlServiceFactory: require('./sparql_service/SparqlServiceFactory'),
SparqlServiceFactoryConst: require('./sparql_service/SparqlServiceFactoryConst'),
SparqlServiceFactoryDefault: require('./sparql_service/SparqlServiceFactoryDefault'),
Expand Down
2 changes: 1 addition & 1 deletion lib/service/list_service/ListService.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ var ListService = Class.create({
throw 'Not implemented';
},

fetchCount: function(thing, threshold) {
fetchCount: function(thing, itemLimit, rowLimit) {
console.log('Not implemented');
throw 'Not implemented';
},
Expand Down
2 changes: 1 addition & 1 deletion lib/service/lookup_service/LookupService.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ var LookupService = Class.create({
/**
* This method must return a promise for a Map<Id, Data>
*/
lookup: function() { // ids) {
lookup: function(key) {
console.log('Not overridden');
throw 'Not overridden';
},
Expand Down
4 changes: 2 additions & 2 deletions lib/service/query_execution/QueryExecutionPaginate.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ var QueryExecutionPaginate = Class.create(QueryExecution, {

executeSelectRec: function(queryPaginator, prevResult) {
var query = queryPaginator.next();
console.log('Query Pagination: ' + query);
//console.log('Query Pagination: ' + query);
if (!query) {
return prevResult;
}
Expand Down Expand Up @@ -86,7 +86,7 @@ var QueryExecutionPaginate = Class.create(QueryExecution, {
this.timeoutInMillis = timeoutInMillis;

if (!this.timeoutMsgShown) {
console.log('[WARN] Only preliminary timeout implementation for paginated query execution');
console.log('[WARN] Only preliminary timeout implementation for paginated query execution.');
this.timeoutMsgShown = true;
}
},
Expand Down
33 changes: 33 additions & 0 deletions lib/service/sparql_service/SparqlServiceConsoleLog.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
var Class = require('../../ext/Class');
var SparqlService = require('./SparqlService');

/**
* Sparql Service wrapper that expands limit/offset in queries
* to larger boundaries. Intended to be used in conjunction with a cache.
*
*/
var SparqlServiceConsoleLog = Class.create(SparqlService, {
initialize: function(sparqlService) {
this.sparqlService = sparqlService;
},

getServiceId: function() {
return this.sparqlService.getServiceId();
},

getStateHash: function() {
return this.sparqlService.getStateHash();
},

hashCode: function() {
return 'console-log:' + this.sparqlService.hashCode();
},

createQueryExecution: function(query) {
console.log('SparqlServiceConsoleLog saw query: ' + query);
var result = this.sparqlService.createQueryExecution(query);
return result;
}
});

module.exports = SparqlServiceConsoleLog;
Loading

0 comments on commit 51c71a5

Please sign in to comment.