Date post: | 14-Apr-2017 |
Category: |
Technology |
Upload: | geoknow |
View: | 731 times |
Download: | 0 times |
Creating Knowledge out of Interlinked Data
LOD2 Presentation . 02.09.2010 . Page
Facete
Claus Stadler
2015.09.15 GeoLD Workshop
Exploring the spatial Web of Data with
2
FaceteA faceted browser for the Web of Data
AgendaAgenda
● MotivationMotivation
● Screenshot of FaceteScreenshot of Facete
● New FeaturesNew Features
● ArchitectureArchitecture
● JassaJassa
● Jassa-UIJassa-UI
● DemoDemo
3
FaceteMotivation
The LinkedGeoData BrowserThe LinkedGeoData Browser
4
FaceteMotivation
The LinkedGeoData BrowserThe LinkedGeoData Browser
● ““Naive SPARQL-based” browserNaive SPARQL-based” browser
● Cannot handle large amount of geometriesCannot handle large amount of geometries
● Cannot handle large amounts of featuresCannot handle large amounts of features
● Can only filter by classesCan only filter by classes
● Can only show direct properties of resourcesCan only show direct properties of resources
● Only works for WGS84Only works for WGS84
● No internationalizationNo internationalization
5
FaceteA faceted browser for the Web of Data
Screenshot of the ApplicationScreenshot of the Application
6
FaceteNew features
Integrated Dataset CatalogIntegrated Dataset Catalog
7
FaceteNew features
RDF EditorRDF Editor
8
Application Container (Tomcat, Jetty, ...)
FaceteArchitecture
ArchitectureArchitecture
Facete
SparqlQuery Cache
Client(Browser)
Server
RemoteSparqlEndpoints
Config
ConceptProperty Path Finder
SpringBatch
SparqlExporter
SpringBatch
JoinSummaries
Facete
Jassa Library Jassa UI LibraryApplication
Logic
EDIT
RDF Editing on the Web
1. Annotate your HTML 3. Get live feeback of the RDF and changes
2. Interact with your pre-filled form
Claus Stadler, Natanael Arndt, Michael Martin and Jens Lehmann
<div rex-subject=”dbr:Vienna” rex-predicate=”geo:geometry”>
<rdf-term-input ng-model=”wkt” rex-value=”wkt” />
<geometry-inputng-model=”wkt” rex-literal />
</div>
bower install jassa-ui-angular-edit https://github.com/GeoKnow/Jassa-UI-Angular
10
FaceteArchitecture
Edit WorkflowEdit Workflow
Facete
Sparql Cache
Client(Browser)
Server
RemoteSparqlEndpoints
Facete UI Component Reset form to pristine
Invalidate server side cache
Invalidate client side cache
Create a new SparqlService object will refresh client components and edit forms
Sparql Service
UI Component RDF Editor
Sparql Cache
Sparql Service
https://github.com/GeoKnow/DataDrivenDependencyInjection-Angular
11
FaceteA faceted browser for the Web of Data
The JAvascript Suite for Sparql Access (Jassa) LibraryThe JAvascript Suite for Sparql Access (Jassa) Library
rdfrdf.Node, rdf.NodeFactoryrdf.Tripel, rdf.Graphrdf.vocab.rdf.*, rdf.vocab.rdfs.*
sparql.Element*sparql.Expr*sparql.Concept
RDF core classesand vocabs
SPARQL syntaxclasses
serviceSPARQL serviceclasses
service.SparqlServiceHttpservice.SparqlServiceCacheservice.ResultSet
Purpose Module Excerpt of important Classes
sparql
depends on
depends on
sparqlService = new service.SparqlServiceHttp('http://dbpedia.org/sparql'['http://dbpedia.org']);sparqlService = new service.SparqlServiceCache(sparqlService);sparqlService = new service.SparqlServiceVirtFix(sparqlService);sparqlService = new service.SparqlServicePaginate(sparqlService, 1000);sparqlService = new service.SparqlServicePageExpand(sparqlService, 100);var qe = sparqlService.createQueryExecution('Select * { ?s ?p ?o } Limit 10'qe.setTimeout(5000);qe.execSelect().then(function(rs) { while(rs.hasNext()) { /* ... */ } });
12
FaceteA faceted browser for the Web of Data
The JAvascript Suite for Sparql Access (Jassa) LibraryThe JAvascript Suite for Sparql Access (Jassa) Library
sponate sponate.Mapsponate.StoreFacade
facete
SPARQL result setto JSON document mapper
Supports regex search, limit,offset, counting, …on virtual JS documentsrather than raw result set rows
facete.FacetConfigfacete.FacetServicefacete.FacetTreeConfigfacete.FacetTreeService
serviceSPARQL serviceclasses
service.SparqlServiceHttpservice.SparqlServiceCacheservice.ResultSet
Purpose Module Excerpt of important Classes
depends on
depends on
depends on
Faceted Search module
Supports nested facets;regex search, paginationfor both facets and facetvalues
13
FaceteJassa-UI
Jassa-UI - User Interface ComponentsJassa-UI - User Interface Components
14
FaceteDemo
AgendaAgenda
DemoDemo
15
FaceteAchievements
IssuesIssues
● Cannot handle large amounts of geometries
● Large amounts of Geometries supported viaLarge amounts of Geometries supported viaclient side Sparql-based clustering using bounding boxesclient side Sparql-based clustering using bounding boxes
● Cannot handle large amounts of features
● Intensional description of the set of resources matchingIntensional description of the set of resources matchingthe facet constraints enables paginationthe facet constraints enables pagination
● Can only filter by classes
● Can filter by values of any propertyCan filter by values of any property
16
FaceteAchievements
IssuesIssues
● Can only show direct properties of resources
● Can show values of indirectly related (inverse) propertiesCan show values of indirectly related (inverse) properties
● Only works for WGS84
● Geometry Literals (GeoSPARQL / Virtuoso), WGS84, GeoRSSGeometry Literals (GeoSPARQL / Virtuoso), WGS84, GeoRSS
● Indirection supportedIndirection supported
● No internationalization
● Preferred languages and labelPreferred languages and labelproperties supported via Sponateproperties supported via Sponate
17
FaceteFuture Work
InterlinkingInterlinking
18
FaceteDemo
The EndThe End
Thank You!Thank You!
Questions?Questions?
19
FaceteLinks
Related LinksRelated Links
● http://facete.aksw.org/http://facete.aksw.org/
● https://github.com/GeoKnow/Facete2https://github.com/GeoKnow/Facete2
JavaScript ComponentsJavaScript Components
● https://github.com/GeoKnow/Jassahttps://github.com/GeoKnow/Jassa
● https://github.com/GeoKnow/Jassa-UI-Angularhttps://github.com/GeoKnow/Jassa-UI-Angular
Java ComponentsJava Components
● https://github.com/AKSW/jena-sparql-apihttps://github.com/AKSW/jena-sparql-api
20
FaceteProperty Path Finding
Concept Property Path Finding (Sketch)Concept Property Path Finding (Sketch)
({?s a Project}, ?s)
({?s long ?x ; lat ?y}, ?s)
Create a graph whereeach node corresponds to a property, andeach edge corresponds to a connection between these properties
21
FaceteMotivation
Jassa – Faceted Browsing Module (Facete-Module)Jassa – Faceted Browsing Module (Facete-Module)
var facetConfig = new facete.FacetConfig();var constraintPath = facete.Path.parse('http://www.w3.org/1999/02/22-rdf-syntax-ns#type');
facetConfig.getConstraintManager().addConstraint(new facete.ConstraintEquals(constraintPath,
rdf.NodeFactory.createUri('http://fp7-pp.publicdata.eu/ontology/Project')));
var facetValueService = new facete.FacetValueService(sparqlService,facetConfig, 5000000);
var path = facete.Path.parse('http://fp7-pp.publicdata.eu/ontology/funding http://fp7-pp.publicdata.eu/ontology/partner http://fp7-pp.publicdata.eu/ontology/address http://fp7-pp.publicdata.eu/ontology/country');
facetValueService.prepareListService(path).then(function(ls) { ls.fetchItems().then(function(items) { /* … */ });});
22
FaceteMotivation
Jassa – Sparql To JavaScript Mapper (Sponate)Jassa – Sparql To JavaScript Mapper (Sponate)
● Inspired by SParql + jsON + hibernATEInspired by SParql + jsON + hibernATEstore = new sponate.StoreFacade(sparqlService, { 'rdf': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'
/* ... */});
store.addMap({ name: 'castles', template: [{
id: '?s', displayLabel: { $ref: { target: 'labels', attr: 'displayLabel' }} }],
from: '?s a dbpedia-owl:Castle'});
store.addMap({ name: 'labels', template: [{
id: '?s', displayLabel: new AggBestLabel('s', 'p', 'o', ['en', 'de', ''], ['skos:prefLabel', 'rdfs:label', 'doap:name']), hiddenLabels: ['?o'] }], from: '?s ?p ?o . Filter(?p In (skos:prefLabel, rdfs:label, doap:name))'});
store.castles.find().limit(10).list().then(function(castles) { /* ... */});