<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Evaluation Environment for Linked Data Web Services</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Sebastian</forename><surname>Bader</surname></persName>
							<email>sebastian.bader@kit.edu</email>
							<affiliation key="aff0">
								<orgName type="institution">Karlsruhe Institute of Technology (KIT)</orgName>
								<address>
									<postCode>76133</postCode>
									<settlement>Karlsruhe</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Alexander</forename><surname>Wolf</surname></persName>
							<email>al.wolf@usu.de</email>
							<affiliation key="aff1">
								<orgName type="institution">USU Software AG</orgName>
								<address>
									<postCode>76137</postCode>
									<settlement>Karlsruhe</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Felix</forename><surname>Keppmann</surname></persName>
							<email>felix.leif.keppmann@kit.edu</email>
							<affiliation key="aff0">
								<orgName type="institution">Karlsruhe Institute of Technology (KIT)</orgName>
								<address>
									<postCode>76133</postCode>
									<settlement>Karlsruhe</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Evaluation Environment for Linked Data Web Services</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">C37A993C2F67233C5C5E5E1D3D5C3231</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T12:01+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>evaluation environment</term>
					<term>linked data platform</term>
					<term>web services</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>In the last decade many approaches and efforts have been made to introduce semantic services into real-life applications. Nevertheless, Linked Data Web Services are still waiting for their major breakthrough. We state that improving the capability to compare and evaluate different approaches leads to a faster propagation in the field. We therefore propose a straightforward test and evaluation environment for distributed Linked Data Web Services. Our implementations allows the objective comparison of approaches for e.g. API descriptions, service discovery, composition or orchestration.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>The ongoing digitization brings more and more data providers, functionalities and applications to the Web. For example with the Internet of Things the amount of available data sources will further increase massively <ref type="bibr" target="#b1">[2]</ref>. In addition, a rising number of services is consumable via Web APIs. But developers have mostly manually configured consuming applications in mind and therefore document, if at all, their API in human understandable but unstructured forms. This is not sufficient for the upcoming volume and variety of new data producers, devices and applications in the Web. But in order to lift the emerging potential for businesses and end users, the various components have to be interconnected and communicate with each other.</p><p>Linked Data has the potential to deliver the syntactic and semantic integration by combining well-understood Web technologies (HTTP, URIs etc.) with semantic declarations. Its consistent treatment of data and communication patterns paths the way for a fast integration of loosely-coupled systems. The thereby established distributed architectures can enable a fast generation of powerful applications by the combination and reuse of services and software artifacts.</p><p>However, service and data discovery, composition, and orchestration are demanding challenges which already draw major efforts of the Semantic Web community. But in contrast to the huge volume of developed approaches the actual progress is hard to measure as most research groups evaluate new approaches on own test cases and in non-replicable environments. Consequently, an objective assessment of the current state of the art is hardly possible.</p><p>In this work we focus on the creation of distributed service environments in a declarative manner and make the following contributions: 1) we present an approach on building generic but adaptable service stubs based on Linked Data Platform specifications; 2) we provide and describe a prototypical implementation of these services in a reproducible, distributed, and scalable evaluation environment; 3) we show the feasibility of the approach in a preliminary evaluation.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Related Work</head><p>In the recent years Web Services and APIs are more and more shifted from comprehensive protocols like SOAP towards the more light-wight REST APIs. Versteden and Pauwels present mu.semte.ch <ref type="bibr" target="#b7">[8]</ref>, an exemplary platform for mashups of RESTful Linked Data-based microservices. They package the elements of their platform in Docker<ref type="foot" target="#foot_0">3</ref> containers to ease their shipment and reuse. But the adaptability for other scenarios is limited as the mu.semte.ch acts as an exclusive middleware for any connected application.</p><p>Several activities in the last decade promoted the comparison and competition of approaches and implementations against each other. The Semantic Web Challenge<ref type="foot" target="#foot_1">4</ref> pushed recent developments to adding value for end users. The broad set of criteria allowed a wide range of different use cases. In contrast, the Semantic Web Services (SWS) Challenge citepetrie2008semantic and Web Services Challenge (WSC) <ref type="bibr" target="#b0">[1]</ref> provided testbeds for specified scenarios and aimed to present and enhance the maturity of semantic web service technologies. But even though these efforts drive the comparability of implementations regarding their scope, a generic method to evaluate developments based on Linked Data services is still missing.</p><p>Joshi et al. <ref type="bibr" target="#b3">[4]</ref> face a similar task for the creation of RDF data sets. The proposed LinkGen system is capable of generating sets of Linked Data for specified vocabularies, configured through a seed parameter. Even malformed, syntactical and invalid statements are included, making the output realistic for controlled evaluations of new approaches. Nevertheless, LinkGen is only applicable for data generation and not services.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Service Environment</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Preliminaries</head><p>Our approach for distributed, scalable, and reproducible service environments is build on top of the Representational State Transfer (REST) paradigm for a resource-oriented viewpoint on distributed applications and for the interaction between their components. In addition, the Linked Data paradigm for state representations, semantics, and interlinking of resources defines a mature data format for the Web.</p><p>This combination of Linked Data and REST has recently been standardized by the Linked Data Platform (LDP) specification <ref type="bibr" target="#b6">[7]</ref> of the World Wide Web Consortium (W3C). It specifies the semantics and interactions for the concept of a resource, in particular of the LDP Resource, with its specializations of the LDP RDF Source which provide state representations that adhere to the RDF data model. As subtype of the LDP RDF Source, the LDP Container with its specializations of the LDP Basic Container enables different kind of one-many parent-child relations between other LDP Container and LDP Resources. Following the LDP specifications all interactions towards container and resources are restricted to basic HTTP methods (GET, PUT, POST, DELETE) and therefore guarantee simple and transparent data manipulation. Yet, only data handling is specified. Web Services of any kind are not regarded by these standards.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Architecture</head><p>The main goal of our approach is to support reproducibility in building service environments, while, as sub-goals, support scalability in terms of number of service hosts and adaptability in terms of service functionality. We strictly comply to LDP specifications in order to benefit from their mature interaction handling and data presentation.</p><p>The Configuration Layer consists of a limited number of configuration arguments, the so-called seed, that guarantees -for equal argument values -the same distribution, scale, and functionality in order to reach reproducibility. At the second layer, the Declaration Layer, we generate -in a reproducible way -custom or use given deployment declarations based on the provided configuration arguments of the seed layer. This declarations include 1) a composition declaration, i.e., the specific number of host with their specific configuration, 2) declarations for the host systems, i.e., specify how each host system should be build, and 3) declarations of different service functionalities that should be provided by hosts. The Deployment Layer of our architecture is the actual deployment of the service environment, i.e., the deployment of services at real virtual and/or physical hosts with a certain functionality as declared by the second layer.</p><p>We enable a declarative adaptation of service functionality by utilizing Nota-tion3 (N3) rule programs, proposed by the Smart Components approach in <ref type="bibr" target="#b4">[5]</ref>. This rule programs are evaluated by an interpreter against RDF graphs and enable deduction of new knowledge, data transformation, and via build-in functions HTTP interaction as well as mathematical operations. In our approach we use this rule programs to describe the function between RDF input and RDF output of services. As the program's data format is N3 and therefore a superset of RDF, they can not be described as LDP RDF Sources but only as LDP Non-RDF Sources, stored as binary files. The integration of this custom functionality and the execution of the programs are established via HTTP POST on certain 'Start' LDP Resources, which is explicitly marked as optional by the LDP specification and without further implications for LDP Resources. Only for LDP Containers the LDP specification provides specific behaviour for HTTP POST, in particular the creation of child-resources. Relying on LDP Resources, the proposed behaviour on incoming POSTs is therefore in accordance with the LDP specifications but also enables the integration of Web Services.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Implementation</head><p>In the first phase of the deployment process, empty service stubs are deployed as part of an extended Apache Marmotta<ref type="foot" target="#foot_2">5</ref> Linked Data Platform Web server <ref type="foot" target="#foot_3">6</ref> . At this point, the started LDP server contains some basic configurations and is already accessible but has no included data or further functionalities beyond the LDP interaction models. In order to add a Web Service, at least four special LDP Resources have to be created. We will describe the procedure regarding a simple service which applies basic mathematical operations on input values and returns the result.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.1">Deployment</head><p>The building blocks of our testing and evaluation environment are depicted in Fig. <ref type="figure" target="#fig_0">1</ref>. The main control component is a pythonscript which coordinates the complete setup. Mandatory input parameters of the script are the number of desired instances, a seed number and the host name of the executing machine. Started on a system that fulfills the requirements<ref type="foot" target="#foot_4">7</ref> , the script performs the following tasks in order: (1) Pulling a specific docker image<ref type="foot" target="#foot_5">8</ref> from the public docker repository. This image is used for all containers running in the evaluation environment. It is based on tomcat7:alpine<ref type="foot" target="#foot_6">9</ref> and contains the enhanced version of Apache Marmotta.</p><p>(2) Based on the input parameter, the script creates a docker-compose.yml deployment descriptor. Each docker container gets port 8080 (tomcat/marmotta) mapped to an individual port of the host machine. The port forwarding uses ports in range [9000:9000+n] by default but can be set to any range at starting time. With this information the docker containers are deployed.</p><p>(3) Pseudo-random variants of the service are selected controlled through the seed parameter. For each instance, a new variant of the service program is created (like the one in Fig. <ref type="figure">3</ref>). As the same seed will always generate the same services, this procedure assures the reproducibility of every scenario. (4) The generated programs are pushed to the waiting containers by utilizing the LDP REST-API provided by Marmotta. First, an instance of :LinkedDataWeb-Service is required. A :LinkedDataWebService is a subclass of the ldp:Basic-Container and serves as the Web Service root. It contains all descriptions and links to the other Web resources. Second, the service gets its execution instructions through a :Program resource. For now, only declarations in Notation3 are supported. For further details on the rule-based syntax see <ref type="bibr" target="#b2">[3]</ref>.</p><p>Next, a start resource gets posted to the server in the form of a new ldp: Resource. This resource must include an RDF statement declaring it an instance of the :StartAPI class and conform to the LDP Resource interaction model. As the server treats members of this class as triggers for services, in contrast to ldp:Containers or ldp:RDF-Sources, this information changes the default handling of resources, in particular on incoming POST requests.</p><p>The last deployment step is the creation of a description resource. For this, and most other semantic relations between the LDP resources, the outlined concept relies on the HYDRA <ref type="bibr" target="#b5">[6]</ref> vocabulary wherever possible (Fig. <ref type="figure" target="#fig_1">2</ref>). For the execution of a Web Service in this context, a :LinkedDataWebService container, a :Program and a :StartApi resource are mandatory with optional ApiDescriptions, Operation and InputPattern declarations.</p><p>The script can also be executed against a docker swarm. In this case the containers are automatically distributed on physical machines which allows to scale the evaluation environment without any further adjustments. By using this approach, the only artifact that is required to setup the evaluation environment is the script itself. Using a certain seed makes environments reproducible.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.2">Service generator</head><p>The main purpose of the evaluation environment is to provide an infrastructure for generating reproducible, easy to deploy networks of Web-based and semantically enriched services. Those networks can then be used to test new aggregation, composition or orchestration methods. After the execution of steps ( <ref type="formula">1</ref>) and ( <ref type="formula">2</ref>) the container with LDP Web APIs are up and running but lack any functionality.</p><p>A simple example of a service can be the adding of two numeric values. In our surrounding, such a service is defined by a N3 program, declaring the transformation from input to return values. This program consists of one or many rules (Fig. <ref type="figure">3</ref>) which here specify the transformation of the variables through a "sum" operator and creates a new triple containing the result.</p><p>For test scenarios usually a multitude of different services is required that can then be orchestrated or aggregated. For a reasonable scenario the services should of course differ in functionality and interfaces. To allow the evaluation environment to scale, the service implementations must be generic and parameterizable. But if the parametrization is truly random, an once created scenario can not be repeated. Therefore, we base the selection on a seed value to make the environment with all its services reproducible.</p><p>Our evaluation environment setup script creates services that offer for now the functionality of basic arithmetic operations (addition, subtraction, division and multiplication). The services also vary in the number of input parameters. At the moment, the script generates services that apply operations on 2-26 operands. Which operation is selected and how many operands are used is based on a pseudo random generator initialized with the seed.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.3">Execution Engine</head><p>As outlined, the service stubs are filled after they have been deployed. Even more, programs can be modified and even replaced while the instance is active. The Linked Data-Fu engine <ref type="bibr" target="#b2">[3]</ref> provides the necessary capabilities. Originally designed for Linked Data Stream integration it is also capable to perform HTTP @prefix ex: &lt;http://example.org/&gt; . @prefix math: &lt;http://www.w3.org/2000/10/swap/math#&gt; .</p><p>{ ?anything ex:summand1 ?a ; ex:summand2 ?b . (?a ?b) math:sum ?sum . } =&gt; { ex:result ex:value ?sum . } . operations in order to interact with RESTful Web resources. As all involved services actually are of the proposed type, a service can select, invoke and change other services and even itself. Whenever a HTTP POST request is sent to a LDP Resource of the :StartApi class, the corresponding functionality is triggered. The server combines an optionally received RDF graph from the request body with the specific program file and starts the engine. The computed RDF triples are then collected and written to the respond message. Therefore, only synchronous requests are possible.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Evaluation</head><p>We claim that the proposed environment can generate a Web like surrounding with minimal effort. In order to give a first impression we therefore measure the necessary computational overhead to establish a certain number of containers. The tests are conducted on an average office laptop<ref type="foot" target="#foot_7">10</ref> .</p><p>The results (Fig. <ref type="figure">4</ref>) show a significant increase of computation time for more than five instances. It is basically caused by the filled main memory of the evaluation machine. In the current state, 1 GB to 1.2 GB of main memory per container are necessary for acceptable responds times. Whenever the docker engine provides less memory, the deployment time for the corresponding instance increases drastically.</p><p>We assume that the starting process of the Linked Data server is the main bottleneck. This is supported by recommended settings of Marmotta of about 1 GB. But even if spare memory is available, Docker will start to provide it to the container after an unpredictable amount of time. That is why the reduction of the required memory and the optimization of its distribution is one of our next steps with the highest priority.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">Conclusion</head><p>We have outlined an adjustable testing and evaluation infrastructure for LDPbased Web Services. Conforming to LDP specifications, we implemented a functionality to quickly generate large-scale scenarios for distributed applications with a reasonable overhead. The generic Web Service stubs allow functionality adjustments at runtime and therefore support an environment with dynamic changes under laboratory conditions. On top, the combination of a Linked Data server with RESTful Web Service capabilities disperses the separation between data and services.</p><p>We illustrated one scenario with an exemplary generator for a set of facile service instances. This specific evaluation design is solely defined by the generator script and the configuration parameters (number of instances and the seed value). It can be deployed anywhere under similar conditions.</p><p>Our next steps involve the enhancement of the containers to more elaborate use cases. Asynchronous calls, streaming capabilities and semantic reasoning are not yet possible. In addition, we will examine how more complex services with appropriate semantic descriptions can be generated and the Shapes Constraint Language<ref type="foot" target="#foot_8">11</ref> (SHACL) will be evaluated in order to automatically declare and validate RDF data in order to exactly define input and output data.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1. Architecture of evaluation environment</figDesc><graphic coords="4,203.93,101.66,207.50,122.87" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 2 .</head><label>2</label><figDesc>Fig. 2. Basic resources for each service</figDesc><graphic coords="5,169.35,115.83,276.66,108.77" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Fig. 3 .Fig. 4 .</head><label>34</label><figDesc>Fig. 3. Adding two variables declared with Notation3 rules</figDesc></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_0">http://www.docker.com/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="4" xml:id="foot_1">http://challenge.semanticweb.org</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="5" xml:id="foot_2">http://marmotta.apache.org/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="6" xml:id="foot_3">The source code is available through GitHub: http://github.com/aifb/s2apite</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="7" xml:id="foot_4">System requirements: python 3.5+; docker 1.13.0+; docker-compose 1.11.1+</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="8" xml:id="foot_5">https://hub.docker.com/r/aifb/s2apite/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="9" xml:id="foot_6">https://hub.docker.com/_/tomcat/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="10" xml:id="foot_7">i7-4600U with 2.10 GHz &amp; 4 cores, 12GB RAM memory, 64-bit Ubuntu 16.04</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="11" xml:id="foot_8">https://www.w3.org/TR/shacl/</note>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Acknowledgement The research and development project that forms the basis for this report is funded under project No. 01MD16015 within the scope of the Smart Services World technology program.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Overview of the web services challenge (WSC): discovery and composition of semantic web services</title>
		<author>
			<persName><forename type="first">A</forename><surname>Bansal</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Bansal</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">B</forename><surname>Blake</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Bleul</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Weise</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Semantic Web Services: Advancement Through Evaluation</title>
				<imprint>
			<date type="published" when="2012">2012</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<ptr target="http://www.emc.com/leadership/digital-universe/" />
		<title level="m">EMC Digital Universe: The Digital Universe of Opportunities: Rich Data and the Increasing Value of the Internet of Things</title>
				<imprint>
			<date type="published" when="2014">2014. 30. August 2017</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">On-the-fly integration of static and dynamic linked data</title>
		<author>
			<persName><forename type="first">A</forename><surname>Harth</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">A</forename><surname>Knoblock</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Stadtmüller</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Studer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Szekely</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">4th International Conference on Consuming Linked Data</title>
				<imprint>
			<date type="published" when="2013">2013</date>
			<biblScope unit="page" from="1" to="12" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">LinkGen: Multipurpose Linked Data Generator</title>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">K</forename><surname>Joshi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Hitzler</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Dong</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">The Semantic Web -ISWC 2016</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2016">2016</date>
			<biblScope unit="page" from="113" to="121" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Semantic Technologies for Realising Decentralised Applications for the Web of Things</title>
		<author>
			<persName><forename type="first">F</forename><forename type="middle">L</forename><surname>Keppmann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Maleshkova</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Harth</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ICECCS</title>
		<imprint>
			<biblScope unit="page" from="71" to="80" />
			<date type="published" when="2016">2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<title level="m" type="main">Hydra Core Vocabulary</title>
		<author>
			<persName><forename type="first">M</forename><surname>Lanthaler</surname></persName>
		</author>
		<ptr target="http://www.hydra-cg.com/spec/latest/core/(2017" />
		<imprint>
			<date type="published" when="2017-07-07">07. July 2017</date>
		</imprint>
	</monogr>
	<note>unofficial Draft</note>
</biblStruct>

<biblStruct xml:id="b6">
	<monogr>
		<author>
			<persName><forename type="first">R</forename><surname>Menday</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Mihindukulasooriya</surname></persName>
		</author>
		<ptr target="http://www.w3.org/TR/ldp-primer/" />
		<title level="m">Linked data platform 1.0 primer</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<monogr>
		<author>
			<persName><forename type="first">A</forename><surname>Versteden</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Pauwels</surname></persName>
		</author>
		<ptr target="http://ceur-ws.org/Vol-1629/paper4.pdf" />
		<title level="m">State-of-the-art Web Applications using Microservices and Linked Data</title>
				<imprint>
			<date type="published" when="2017-02-24">24.02.2017</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
