Scalable and Reactive Programming for Semantic Web Developers
|
|
|
- Maximilian Nash
- 10 years ago
- Views:
Transcription
1 Proceedings of the ESWC2015 Developers Workshop 47 Scalable and Reactive Programming for Semantic Web Developers Jean-Paul Calbimonte LSIR Distributed Information Systems Lab, EPFL, Switzerland. Abstract. The Semantic Web brings a powerful set of concepts, standards and ideas that are already changing the shape of the Web. However, in order to put these notions into practice we need to translate them into code. That is why the broad notion of programming the Semantic Web is important, even if it remains challenging to provide the appropriate tools for developers to implement these ideas. In this work, we present our experience in a series of common Semantic Web programming tasks, and how we improve the developer experience and productivity by providing a simple Domain Specific Language (DSL) in Scala. We exemplify its use through fundamental tasks such as dealing with RDF data and ontologies, or performing reasoning and querying using JVM languages. In particular, we show how we can profit from the intrinsic extensibility of the Scala language to simplify these tasks using a custom DSL, at the same time that we introduce principles of reactivity and scalability in the code. 1 Introduction The Web is progressively incorporating elements, ideas and standards that emerged in the Semantic Web community in the latest years. Developers are at the forefront of these initiatives, creating semantic vocabularies, defining ontologies, manipulating RDF annotations, or building complex knowledge graphs [4]. While there is an increasing number of tools and libraries to help programmers to accomplish these tasks, we believe that there is large room for improvement, specially in the APIs of common Semantic Web libraries. In this paper we present our experience with some well-known JVM-based libraries for managing RDF, OWL and SPARQL, and the pitfalls we find when using their APIs. Moreover, we propose using a simple Domain Specific Language (DSL) using the extensibility features of the Scala language. We have chosen Scala as it is scalable in the sense that it is designed to grow with the demands of its users [3]. More concretely, it allows customizing and adapting APIs, through the usage of macros, implicits and other constructs, which greatly simplify the development process and remove unnecessary boilerplate code. Furthermore, we show how we can introduce constructs such as Futures and Actors, which provide a framework for building reactive and scalable applications. The paper is organized as follows: In Section 2 we identify common issues in RDF manipulation and how our DSL can help alleviating them. In Section 3 we exemplify the use of Futures for asynchronous evaluation in SPARQL queries. In Section 4 we showcase the use of Actors for reactive programming on RDF streams. We consider the
2 Proceedings of the ESWC2015 Developers Workshop 48 case of REST services in Section 5, and we provide an example that shows the use of the DSL with the OWL API in Section 6. 2 Basic RDF Manipulation A common task in Semantic Web development is basic manipulation of RDF graphs. While sometimes these graphs are loaded as files, it is often needed to build them programmatically. Java libraries exist for that purpose, such as Jena [2]. For instance a simple triple (e.g. the resource has the name "John Smith" through the VCard FN predicate) can be added to a Jena RDF model as follows: String personuri = " Model model = ModelFactory.createDefaultModel(); model.createresource(personuri).addproperty(vcard.fn,"john Smith"); The code basically creates a model to which a resource is added, along with the property (predicate) and object. In Scala, exactly the same code can be written as follows, usign our DSL after using some tricks such as implicits methods and implicit classes: val personuri = " implicit val model = createdefaultmodel add(personuri,vcard.fn->"john Smith") We can already see that the triples can be added in a simpler way to the model, while it still uses the underlying Jena library. The personuri is implicitly converted into a resource, and the overloaded add method takes pairs of predicates and objects. For the interested developer, the definitions of the helper implicit classes and methods can be found in our GitHub repository, along with running versions of all the examples in this paper 1. While this example seems simple enough, and both the Java and Scala version are almost equivalent in terms of complexity and lines of code, we can notice that only slightly more complex graphs already start to become harder to code, mainly due to boilerplate in the API. For example consider adding the given, family and full name for the previous example: String personuri = " String givenname = "John"; String familyname = "Smith"; String fullname = givenname + " " + familyname; Model model = ModelFactory.createDefaultModel(); model.createresource(personuri).addproperty(vcard.fn,fullname).addproperty(vcard.n, model.createresource().addproperty(vcard.given,givenname).addproperty(vcard.family,familyname)); The resulting code is already a bit cumbersome and bulky, while the Scala counterexample is much terser and focuses only on the code that matters, and the nesting of the 1 Examples code:
3 Proceedings of the ESWC2015 Developers Workshop 49 triples can be naturally written, almost as if it was Turtle RDF representation. Again, To get here we are using syntax sugar through implicit classes and methods, which result very handy. val personuri = " val givenname = "John" val familyname = "Smith" val fullname = s"$givenname $familyname" implicit val model = createdefaultmodel add(personuri,vcard.fn->fullname, VCARD.N ->add(bnode,vcard.given-> givenname, VCARD.Family->familyName)) Another typical task when dealing with RDF data pogramatically, is to iterate over collections of triples or graphs. Functional programming, which is at the core of the Scala language, is well known to provide powerful and scalable abstractions for dealing with collections. We can see in the following example a Jena code snippet where we iterate over RDF nodes and depending on its type we perform some operation. ArrayList<String> names=new ArrayList<String>(); NodeIterator iter=model.listobjectsofproperty(vcard.n); while (iter.hasnext()){ RDFNode obj=iter.next(); if (obj.isresource()) names.add(obj.asresource().getproperty(vcard.family) else if (obj.isliteral()).getobject().tostring()); names.add(obj.asliteral().getstring()); The task is extremely simple but the resulting code is confusing to say the least, given the procedural way of dealing with collections, and added to that, the non-intuitive type conditions. The equivalent Scala code, again, using our simplified DSL extension makes use of case matching clauses, which naturally lead to different evaluation paths based on types. For collection processing, the built-in map, filter, foldr and foldl functions in Scala greatly simplify the code, making it less error prone and simpler to maintain. val names=model.listobjectsofproperty(vcard.n).map{ case r:resource=> r.getproperty(vcard.family).obj.tostring case l:literal=> l.getstring 3 Querying with SPARQL Another every-day job in the life of a Semantic Web developer is that of querying RDF datasets, either locally or remotely. The following example makes use of our Scala DSL to query DBpedia. The query is simply written as a multiline string, and the Jena Query
4 Proceedings of the ESWC2015 Developers Workshop 50 is created with the sparql object. The serviceselect method executes the query and returns an iterable object of query solutions. In the example we simply get the URI of each resource solution. val querystr = """select distinct?concept val query = sparql(querystr) where {[] a?concept LIMIT 10""" query.serviceselect(" qs=> println(res("concept").geturi) For brevity, we do not show the equivalent Java code, but the reader can notice the simplified iteration pattern and convenient use of implicits to avoid code repetition. We expand this example with the use of Futures. A future is an object that holds a value that may be available at some point in time 2. Futures allow creating asynchronous computations that can be made available in the future, providing a powerful abstraction for concurrent programming. We exemplify this, by simply adding the Future construct to the serviceselect method of the previous example. The resulting type is now a future that encapsulates the iterable object of solutions. In other words this means that this call is asynchronous, and therefore it will not block the lines of code that follow. This is a very useful tool for invocations that can take a long time (e.g. remote SPARQL endpoints), but can be used in other async programming use cases. val f=future(query.serviceselect(" Future(query.serviceSelect(" f.recover{ case e=> println("error "+e.getmessage) f.map(_.foreach{implicit qs=> ) println(res("concept").getvalue) This example also showcases the built-in resiliency features of futures. Using the fallbackto method of a future, we can call a different SPARQL endpoint if the first one fails (e.g. if it was unavailable). Also, using the recover method we can perform eror handling or other cleanup tasks if all fallback options fail. 4 Streams of RDF RDF data is increasingly made available in very dynamic forms, such as in social networks, sensor data, or the Internet of Things, needing to deal with streams of RDF 3. In the following example we introduce the notion of Actors, lightweight objects that interact exclusively through a message passing asynchronous model. The example illustrates a simple RDF receiver actor that simply prints a triple if the predicate is rdf:type. 2 Scala Futures: 3 W3C Group on RDF Stream Processing:
5 Proceedings of the ESWC2015 Developers Workshop 51 class RdfConsumer extends Actor{ def receive= { case t:triple => if (t.predicatematches(rdf. type )) println(s"received triple $t") The core of the behavior of an actor is defined in the implementation of the receive method, and it handles messages (e.g. triples) that arrive to the actor through an internal message box. In this way, concurrent actors can interchange information asynchronously, in local or remote communication. To complete the example, we provide a piece of code that sends triples to this actor in a streaming fashion. The Jena API includes a StreamRDF interface that can be implemented to handle sequences of triples as a stream, and we use the send method ("!") to dispatch triples to the actor when they are available in the stream. val sys=actorsystem.create("system") val consumer=sys.actorof(props[rdfconsumer]) class Streamer extends StreamRDF{ override def triple(triple:triple){ consumer! triple 5 Services: Linked Data Platform RDF and Linked Data are increasingly made available through different sorts of web services. In the example below we show how we can easily wire up a REST service for reading and writing containers in the style of the Linked Data Platform 4. For this we use the Play Framework 5 which is available for both Scala and Java. First we configure the routes, defining the verbs and the relative URLs. In the example below the retrieve method will be called for the GET verb while the add method will be invoked in case of a POST. The containerid is a variable in the URL route. GET /containers/:containerid/ org.rsp.ldp.containerapp.retrieve(containerid:string) POST /containers/:containerid/ org.rsp.ldp.containerapp.add(containerid:string) For example the retrieve method can be implemented as follows. It lists all statements whose subject matches the incoming id, and outputs them in Turtle format. Notice that the service calls itself is asynchronous. 4 Linked Data Platform: 5 Play Framework web development platform:
6 Proceedings of the ESWC2015 Developers Workshop 52 object ContainerApp extends Controller { def retrieve(id:string) = Action.async {implicit request=> val sw=new StringWriter val statements=m.liststatements(iri(prefix+id+"/"),null,null) val model=createdefaultmodel statements.foreach(i=>model.add(i)) model.write(sw, "TURTLE") Future(Ok(sw.toString).as("text/turtle").withHeaders( ETAG->tag, ALLOW->"GET,POST" )) 6 Reasoning and the OWL API As a final example, we show our DSL extensions for the well known OWL API [1], which is commonly used to deal with OWL ontologies, their axioms and reasoning tasks. The example shows how we can easily declare OWL classes using the clazz object, and individuals using the ind construct. Moreover we have defined convenient shortcuts for declaring axioms, e.g. subclassof, which greatly simplify this task compared to the original unmodified OWL API. The example is self explanatory. We declare that singer is a sub-class of artist, and that Elvis is a singer. Then after applying reasoning, we list all individuals that are artists (and Elvis should be classified as such). val onto=mgr.createontology val artist=clazz(pref+"artist") val singer=clazz(pref +"Singer") onto += singer subclassof artist val reasoner = new RELReasonerFactory().createReasoner(onto) val elvis = ind(pref+"elvis") reasoner += elvis ofclass singer reasoner.reclassify reasoner.getindividuals(artist) foreach{a=> println(a.getrepresentativeelement.getiri) 7 Conclusions In this paper, we have shown how we can profit from the extensibility and scalability of Scala to tweak existing Java libraries in such a way that we reduce code boilerplate and complexity. Through a series of examples we see that every-day tasks can be simplified using our DSL extensions, leading to terser code which is potentially cleaner and less error prone. Moreover, we have shown how we can use other built-in features of Scala
7 Proceedings of the ESWC2015 Developers Workshop 53 for writing reactive and scalable semantic web code. More precisely we have discussed about the use of the Actor model and Futures for asynchronous programming. Although the examples shown are only the tip of the iceberg (compared to the myriad of Semantic Web use cases that we can find), we believe that it provides a good glimpse of how one can profit from these powerful language features, combined with well-tested libraries that are used everyday in many projects. Although the DSL that we propose is minimalistic and only a proof of concept, it shows the potential of using a type-safe extensible programming language to develop a more reactive Semantic Web. Acknowledgments Supported by the SNSF Nano-Tera OpenSense2 and CCES Osper projects. References 1. Horridge, M., Bechhofer, S.: The OWL API: A Java API for OWL ontologies. Semantic Web 2(1), (2011) 2. McBride, B.: Jena: A semantic web toolkit. IEEE Internet computing 6(6), (2002) 3. Odersky, M., Spoon, L., Venners, B.: Programming in Scala. Artima Inc (2008) 4. Segaran, T., Evans, C., Taylor, J.: Programming the semantic web. O Reilly Media, Inc. (2009)
Semantic Stored Procedures Programming Environment and performance analysis
Semantic Stored Procedures Programming Environment and performance analysis Marjan Efremov 1, Vladimir Zdraveski 2, Petar Ristoski 2, Dimitar Trajanov 2 1 Open Mind Solutions Skopje, bul. Kliment Ohridski
Semantic Modeling with RDF. DBTech ExtWorkshop on Database Modeling and Semantic Modeling Lili Aunimo
DBTech ExtWorkshop on Database Modeling and Semantic Modeling Lili Aunimo Expected Outcomes You will learn: Basic concepts related to ontologies Semantic model Semantic web Basic features of RDF and RDF
Ontology-Based Discovery of Workflow Activity Patterns
Ontology-Based Discovery of Workflow Activity Patterns Diogo R. Ferreira 1, Susana Alves 1, Lucinéia H. Thom 2 1 IST Technical University of Lisbon, Portugal {diogo.ferreira,susana.alves}@ist.utl.pt 2
Performance Analysis, Data Sharing, Tools Integration: New Approach based on Ontology
Performance Analysis, Data Sharing, Tools Integration: New Approach based on Ontology Hong-Linh Truong Institute for Software Science, University of Vienna, Austria [email protected] Thomas Fahringer
ARC: appmosphere RDF Classes for PHP Developers
ARC: appmosphere RDF Classes for PHP Developers Benjamin Nowack appmosphere web applications, Kruppstr. 100, 45145 Essen, Germany [email protected] Abstract. ARC is an open source collection of lightweight
City Data Pipeline. A System for Making Open Data Useful for Cities. [email protected]
City Data Pipeline A System for Making Open Data Useful for Cities Stefan Bischof 1,2, Axel Polleres 1, and Simon Sperl 1 1 Siemens AG Österreich, Siemensstraße 90, 1211 Vienna, Austria {bischof.stefan,axel.polleres,simon.sperl}@siemens.com
A Semantic web approach for e-learning platforms
A Semantic web approach for e-learning platforms Miguel B. Alves 1 1 Laboratório de Sistemas de Informação, ESTG-IPVC 4900-348 Viana do Castelo. [email protected] Abstract. When lecturers publish contents
XML Processing and Web Services. Chapter 17
XML Processing and Web Services Chapter 17 Textbook to be published by Pearson Ed 2015 in early Pearson 2014 Fundamentals of http://www.funwebdev.com Web Development Objectives 1 XML Overview 2 XML Processing
JOURNAL OF COMPUTER SCIENCE AND ENGINEERING
Exploration on Service Matching Methodology Based On Description Logic using Similarity Performance Parameters K.Jayasri Final Year Student IFET College of engineering [email protected] R.Rajmohan
Semantic Knowledge Management System. Paripati Lohith Kumar. School of Information Technology
Semantic Knowledge Management System Paripati Lohith Kumar School of Information Technology Vellore Institute of Technology University, Vellore, India. [email protected] Abstract The scholarly activities
E6895 Advanced Big Data Analytics Lecture 4:! Data Store
E6895 Advanced Big Data Analytics Lecture 4:! Data Store Ching-Yung Lin, Ph.D. Adjunct Professor, Dept. of Electrical Engineering and Computer Science Mgr., Dept. of Network Science and Big Data Analytics,
RDF y SPARQL: Dos componentes básicos para la Web de datos
RDF y SPARQL: Dos componentes básicos para la Web de datos Marcelo Arenas PUC Chile & University of Oxford M. Arenas RDF y SPARQL: Dos componentes básicos para la Web de datos Valladolid 2013 1 / 61 Semantic
Monitoring Infrastructure (MIS) Software Architecture Document. Version 1.1
Monitoring Infrastructure (MIS) Software Architecture Document Version 1.1 Revision History Date Version Description Author 28-9-2004 1.0 Created Peter Fennema 8-10-2004 1.1 Processed review comments Peter
An Ontology-based e-learning System for Network Security
An Ontology-based e-learning System for Network Security Yoshihito Takahashi, Tomomi Abiko, Eriko Negishi Sendai National College of Technology [email protected] Goichi Itabashi Graduate School
LDIF - Linked Data Integration Framework
LDIF - Linked Data Integration Framework Andreas Schultz 1, Andrea Matteini 2, Robert Isele 1, Christian Bizer 1, and Christian Becker 2 1. Web-based Systems Group, Freie Universität Berlin, Germany [email protected],
LinkZoo: A linked data platform for collaborative management of heterogeneous resources
LinkZoo: A linked data platform for collaborative management of heterogeneous resources Marios Meimaris, George Alexiou, George Papastefanatos Institute for the Management of Information Systems, Research
Java SE 8 Programming
Oracle University Contact Us: 1.800.529.0165 Java SE 8 Programming Duration: 5 Days What you will learn This Java SE 8 Programming training covers the core language features and Application Programming
Lift your data hands on session
Lift your data hands on session Duration: 40mn Foreword Publishing data as linked data requires several procedures like converting initial data into RDF, polishing URIs, possibly finding a commonly used
Semantic Interoperability
Ivan Herman Semantic Interoperability Olle Olsson Swedish W3C Office Swedish Institute of Computer Science (SICS) Stockholm Apr 27 2011 (2) Background Stockholm Apr 27, 2011 (2) Trends: from
Linked Data Interface, Semantics and a T-Box Triple Store for Microsoft SharePoint
Linked Data Interface, Semantics and a T-Box Triple Store for Microsoft SharePoint Christian Fillies 1 and Frauke Weichhardt 1 1 Semtation GmbH, Geschw.-Scholl-Str. 38, 14771 Potsdam, Germany {cfillies,
Evaluating Semantic Web Service Tools using the SEALS platform
Evaluating Semantic Web Service Tools using the SEALS platform Liliana Cabral 1, Ioan Toma 2 1 Knowledge Media Institute, The Open University, Milton Keynes, UK 2 STI Innsbruck, University of Innsbruck,
Semantic Web Success Story
Semantic Web Success Story Practical Integration of Semantic Web Technology Chris Chaulk, Software Architect EMC Corporation 1 Who is this guy? Software Architect at EMC 12 years, Storage Management Software
Publishing Linked Data Requires More than Just Using a Tool
Publishing Linked Data Requires More than Just Using a Tool G. Atemezing 1, F. Gandon 2, G. Kepeklian 3, F. Scharffe 4, R. Troncy 1, B. Vatant 5, S. Villata 2 1 EURECOM, 2 Inria, 3 Atos Origin, 4 LIRMM,
Scala Actors Library. Robert Hilbrich
Scala Actors Library Robert Hilbrich Foreword and Disclaimer I am not going to teach you Scala. However, I want to: Introduce a library Explain what I use it for My Goal is to: Give you a basic idea about
The Development of the Clinical Trial Ontology to standardize dissemination of clinical trial data. Ravi Shankar
The Development of the Clinical Trial Ontology to standardize dissemination of clinical trial data Ravi Shankar Open access to clinical trials data advances open science Broad open access to entire clinical
OSLC Primer Learning the concepts of OSLC
OSLC Primer Learning the concepts of OSLC It has become commonplace that specifications are precise in their details but difficult to read and understand unless you already know the basic concepts. A good
Application of ontologies for the integration of network monitoring platforms
Application of ontologies for the integration of network monitoring platforms Jorge E. López de Vergara, Javier Aracil, Jesús Martínez, Alfredo Salvador, José Alberto Hernández Networking Research Group,
SPARQL UniProt.RDF. Get these slides! Tutorial plan. Everyone has had some introduction slash knowledge of RDF.
SPARQL UniProt.RDF Everyone has had some introduction slash knowledge of RDF. Jerven Bolleman Developer Swiss-Prot Group Swiss Institute of Bioinformatics Get these slides! https://sites.google.com/a/jerven.eu/jerven/home/
Programming the Semantic Web
Master s Thesis Programming the Semantic Web - A Microformats Compatible GRDDL Implementation for ActiveRDF Christian Planck Larsen Department of Computer Science, Aalborg University 24th of August 2007
Middleware support for the Internet of Things
Middleware support for the Internet of Things Karl Aberer, Manfred Hauswirth, Ali Salehi School of Computer and Communication Sciences Ecole Polytechnique Fédérale de Lausanne (EPFL) CH-1015 Lausanne,
Ching-Yung Lin, Ph.D. Adjunct Professor, Dept. of Electrical Engineering and Computer Science IBM Chief Scientist, Graph Computing. October 29th, 2015
E6893 Big Data Analytics Lecture 8: Spark Streams and Graph Computing (I) Ching-Yung Lin, Ph.D. Adjunct Professor, Dept. of Electrical Engineering and Computer Science IBM Chief Scientist, Graph Computing
Short Paper: Enabling Lightweight Semantic Sensor Networks on Android Devices
Short Paper: Enabling Lightweight Semantic Sensor Networks on Android Devices Mathieu d Aquin, Andriy Nikolov, Enrico Motta Knowledge Media Institute, The Open University, Milton Keynes, UK {m.daquin,
RDF Resource Description Framework
RDF Resource Description Framework Fulvio Corno, Laura Farinetti Politecnico di Torino Dipartimento di Automatica e Informatica e-lite Research Group http://elite.polito.it Outline RDF Design objectives
SmartLink: a Web-based editor and search environment for Linked Services
SmartLink: a Web-based editor and search environment for Linked Services Stefan Dietze, Hong Qing Yu, Carlos Pedrinaci, Dong Liu, John Domingue Knowledge Media Institute, The Open University, MK7 6AA,
Introducing Apache Pivot. Greg Brown, Todd Volkert 6/10/2010
Introducing Apache Pivot Greg Brown, Todd Volkert 6/10/2010 Speaker Bios Greg Brown Senior Software Architect 15 years experience developing client and server applications in both services and R&D Apache
OWL Ontology Translation for the Semantic Web
OWL Ontology Translation for the Semantic Web Luís Mota and Luís Botelho We, the Body and the Mind Research Lab ADETTI/ISCTE Av. das Forças Armadas, 1649-026 Lisboa, Portugal [email protected],[email protected]
Extending the Linked Data API with RDFa
Extending the Linked Data API with RDFa Steve Battle 1, James Leigh 2, David Wood 2 1 Gloze Ltd, UK [email protected] 2 3 Round Stones, USA James, [email protected] Linked data is about connecting
Storage and Retrieval of Large RDF Graph Using Hadoop and MapReduce
Storage and Retrieval of Large RDF Graph Using Hadoop and MapReduce Mohammad Farhan Husain, Pankil Doshi, Latifur Khan, and Bhavani Thuraisingham University of Texas at Dallas, Dallas TX 75080, USA Abstract.
Semantics and Ontology of Logistic Cloud Services*
Semantics and Ontology of Logistic Cloud s* Dr. Sudhir Agarwal Karlsruhe Institute of Technology (KIT), Germany * Joint work with Julia Hoxha, Andreas Scheuermann, Jörg Leukel Usage Tasks Query Execution
Grids, Logs, and the Resource Description Framework
Grids, Logs, and the Resource Description Framework Mark A. Holliday Department of Mathematics and Computer Science Western Carolina University Cullowhee, NC 28723, USA [email protected] Mark A. Baker,
Linked Statistical Data Analysis
Linked Statistical Data Analysis Sarven Capadisli 1, Sören Auer 2, Reinhard Riedl 3 1 Universität Leipzig, Institut für Informatik, AKSW, Leipzig, Germany, 2 University of Bonn and Fraunhofer IAIS, Bonn,
Detection and Elimination of Duplicate Data from Semantic Web Queries
Detection and Elimination of Duplicate Data from Semantic Web Queries Zakia S. Faisalabad Institute of Cardiology, Faisalabad-Pakistan Abstract Semantic Web adds semantics to World Wide Web by exploiting
LiDDM: A Data Mining System for Linked Data
LiDDM: A Data Mining System for Linked Data Venkata Narasimha Pavan Kappara Indian Institute of Information Technology Allahabad Allahabad, India [email protected] Ryutaro Ichise National Institute of
Monitoring Hadoop with Akka. Clint Combs Senior Software Engineer at Collective
Monitoring Hadoop with Akka Clint Combs Senior Software Engineer at Collective Collective - The Audience Engine Ad Technology Company Heavy Investment in Hadoop and Other Scalable Infrastructure Need to
Lightweight Data Integration using the WebComposition Data Grid Service
Lightweight Data Integration using the WebComposition Data Grid Service Ralph Sommermeier 1, Andreas Heil 2, Martin Gaedke 1 1 Chemnitz University of Technology, Faculty of Computer Science, Distributed
Java 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner
1 vk» Java 7 Recipes (,\['«** - < g!p#«josh Juneau Carl Dea Freddy Guime John O'Conner Contents J Contents at a Glance About the Authors About the Technical Reviewers Acknowledgments Introduction iv xvi
ABSTRACT 1. INTRODUCTION. Kamil Bajda-Pawlikowski [email protected]
Kamil Bajda-Pawlikowski [email protected] Querying RDF data stored in DBMS: SPARQL to SQL Conversion Yale University technical report #1409 ABSTRACT This paper discusses the design and implementation
Dynamic Decision-Making Web Services Using SAS Stored Processes and SAS Business Rules Manager
Paper SAS1787-2015 Dynamic Decision-Making Web Services Using SAS Stored Processes and SAS Business Rules Manager Chris Upton and Lori Small, SAS Institute Inc. ABSTRACT With the latest release of SAS
Distributed Database for Environmental Data Integration
Distributed Database for Environmental Data Integration A. Amato', V. Di Lecce2, and V. Piuri 3 II Engineering Faculty of Politecnico di Bari - Italy 2 DIASS, Politecnico di Bari, Italy 3Dept Information
It s all around the domain ontologies - Ten benefits of a Subject-centric Information Architecture for the future of Social Networking
It s all around the domain ontologies - Ten benefits of a Subject-centric Information Architecture for the future of Social Networking Lutz Maicher and Benjamin Bock, Topic Maps Lab at University of Leipzig,
RDF Dataset Management Framework for Data.go.th
RDF Dataset Management Framework for Data.go.th Pattama Krataithong 1,2, Marut Buranarach 1, and Thepchai Supnithi 1 1 Language and Semantic Technology Laboratory National Electronics and Computer Technology
Extending Java Web Applications for Semantic Web
Extending Java Web Applications for Semantic Web Lidia Rovan, Ivana Nižeti Department of applied computing University of Zagreb Faculty of Electrical Engineering and Computing Unska 3, Zagreb 10000, CROATIA
A Framework for Collaborative Project Planning Using Semantic Web Technology
A Framework for Collaborative Project Planning Using Semantic Web Technology Lijun Shen 1 and David K.H. Chua 2 Abstract Semantic web technology has become an enabling technology for machines to automatically
CHAPTER 6 EXTRACTION OF METHOD SIGNATURES FROM UML CLASS DIAGRAM
CHAPTER 6 EXTRACTION OF METHOD SIGNATURES FROM UML CLASS DIAGRAM 6.1 INTRODUCTION There are various phases in software project development. The various phases are: SRS, Design, Coding, Testing, Implementation,
How To Use Query Console
Query Console User Guide 1 MarkLogic 8 February, 2015 Last Revised: 8.0-1, February, 2015 Copyright 2015 MarkLogic Corporation. All rights reserved. Table of Contents Table of Contents Query Console User
VIVO Dashboard A Drupal-based tool for harvesting and executing sophisticated queries against data from a VIVO instance
VIVO Dashboard A Drupal-based tool for harvesting and executing sophisticated queries against data from a VIVO instance! Paul Albert, Miles Worthington and Don Carpenter Chapter I: The Problem Administrators
New Generation of Social Networks Based on Semantic Web Technologies: the Importance of Social Data Portability
New Generation of Social Networks Based on Semantic Web Technologies: the Importance of Social Data Portability Liana Razmerita 1, Martynas Jusevičius 2, Rokas Firantas 2 Copenhagen Business School, Denmark
RDF Support in Oracle Oracle USA Inc.
RDF Support in Oracle Oracle USA Inc. 1. Introduction Resource Description Framework (RDF) is a standard for representing information that can be identified using a Universal Resource Identifier (URI).
A Comparison of Database Query Languages: SQL, SPARQL, CQL, DMX
ISSN: 2393-8528 Contents lists available at www.ijicse.in International Journal of Innovative Computer Science & Engineering Volume 3 Issue 2; March-April-2016; Page No. 09-13 A Comparison of Database
Data Store Interface Design and Implementation
WDS'07 Proceedings of Contributed Papers, Part I, 110 115, 2007. ISBN 978-80-7378-023-4 MATFYZPRESS Web Storage Interface J. Tykal Charles University, Faculty of Mathematics and Physics, Prague, Czech
Event-based middleware services
3 Event-based middleware services The term event service has different definitions. In general, an event service connects producers of information and interested consumers. The service acquires events
Web Services for Management Perl Library VMware ESX Server 3.5, VMware ESX Server 3i version 3.5, and VMware VirtualCenter 2.5
Technical Note Web Services for Management Perl Library VMware ESX Server 3.5, VMware ESX Server 3i version 3.5, and VMware VirtualCenter 2.5 In the VMware Infrastructure (VI) Perl Toolkit 1.5, VMware
Java Application Developer Certificate Program Competencies
Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle
ONTOLOGIES A short tutorial with references to YAGO Cosmina CROITORU
ONTOLOGIES p. 1/40 ONTOLOGIES A short tutorial with references to YAGO Cosmina CROITORU Unlocking the Secrets of the Past: Text Mining for Historical Documents Blockseminar, 21.2.-11.3.2011 ONTOLOGIES
MarkLogic Server. Node.js Application Developer s Guide. MarkLogic 8 February, 2015. Copyright 2016 MarkLogic Corporation. All rights reserved.
Node.js Application Developer s Guide 1 MarkLogic 8 February, 2015 Last Revised: 8.0-5, March, 2016 Copyright 2016 MarkLogic Corporation. All rights reserved. Table of Contents Table of Contents Node.js
Using RDF Metadata To Enable Access Control on the Social Semantic Web
Using RDF Metadata To Enable Access Control on the Social Semantic Web James Hollenbach, Joe Presbrey, and Tim Berners-Lee Decentralized Information Group, MIT CSAIL, 32 Vassar Street, Cambridge, MA, USA,
Open Data Integration Using SPARQL and SPIN
Open Data Integration Using SPARQL and SPIN A Case Study for the Tourism Domain Antonino Lo Bue, Alberto Machi ICAR-CNR Sezione di Palermo, Italy Research funded by Italian PON SmartCities Dicet-InMoto-Orchestra
DataDirect XQuery Technical Overview
DataDirect XQuery Technical Overview Table of Contents 1. Feature Overview... 2 2. Relational Database Support... 3 3. Performance and Scalability for Relational Data... 3 4. XML Input and Output... 4
Big Data, Fast Data, Complex Data. Jans Aasman Franz Inc
Big Data, Fast Data, Complex Data Jans Aasman Franz Inc Private, founded 1984 AI, Semantic Technology, professional services Now in Oakland Franz Inc Who We Are (1 (2 3) (4 5) (6 7) (8 9) (10 11) (12
DBpedia German: Extensions and Applications
DBpedia German: Extensions and Applications Alexandru-Aurelian Todor FU-Berlin, Innovationsforum Semantic Media Web, 7. Oktober 2014 Overview Why DBpedia? New Developments in DBpedia German Problems in
We have big data, but we need big knowledge
We have big data, but we need big knowledge Weaving surveys into the semantic web ASC Big Data Conference September 26 th 2014 So much knowledge, so little time 1 3 takeaways What are linked data and the
Formalization of the CRM: Initial Thoughts
Formalization of the CRM: Initial Thoughts Carlo Meghini Istituto di Scienza e Tecnologie della Informazione Consiglio Nazionale delle Ricerche Pisa CRM SIG Meeting Iraklio, October 1st, 2014 Outline Overture:
Scope. Cognescent SBI Semantic Business Intelligence
Cognescent SBI Semantic Business Intelligence Scope...1 Conceptual Diagram...2 Datasources...3 Core Concepts...3 Resources...3 Occurrence (SPO)...4 Links...4 Statements...4 Rules...4 Types...4 Mappings...5
Version Control Your Jenkins Jobs with Jenkins Job Builder
Version Control Your Jenkins Jobs with Jenkins Job Builder Abstract Wayne Warren [email protected] Puppet Labs uses Jenkins to automate building and testing software. While we do derive benefit from
Big Data Management Assessed Coursework Two Big Data vs Semantic Web F21BD
Big Data Management Assessed Coursework Two Big Data vs Semantic Web F21BD Boris Mocialov (H00180016) MSc Software Engineering Heriot-Watt University, Edinburgh April 5, 2015 1 1 Introduction The purpose
Clinical Knowledge Manager. Product Description 2012 MAKING HEALTH COMPUTE
Clinical Knowledge Manager Product Description 2012 MAKING HEALTH COMPUTE Cofounder and major sponsor Member and official submitter for HL7/OMG HSSP RLUS, EIS 'openehr' is a registered trademark of the
Moving from CS 61A Scheme to CS 61B Java
Moving from CS 61A Scheme to CS 61B Java Introduction Java is an object-oriented language. This document describes some of the differences between object-oriented programming in Scheme (which we hope you
Specialized Programme on Web Application Development using Open Source Tools
Specialized Programme on Web Application Development using Open Source Tools A. NAME OF INSTITUTE Centre For Development of Advanced Computing B. NAME/TITLE OF THE COURSE C. COURSE DATES WITH DURATION
