<?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">Automatic Interlinking of Music Datasets on the Semantic Web</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Yves</forename><surname>Raimond</surname></persName>
							<email>yves.raimond@elec.qmul.ac.uk</email>
							<affiliation key="aff0">
								<orgName type="department">Centre for Digital Music Queen Mary</orgName>
								<orgName type="institution">University of London</orgName>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Christopher</forename><surname>Sutton</surname></persName>
							<email>chris.sutton@elec.qmul.ac.uk</email>
							<affiliation key="aff0">
								<orgName type="department">Centre for Digital Music Queen Mary</orgName>
								<orgName type="institution">University of London</orgName>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Mark</forename><surname>Sandler</surname></persName>
							<email>mark.sandler@elec.qmul.ac.uk</email>
							<affiliation key="aff0">
								<orgName type="department">Centre for Digital Music Queen Mary</orgName>
								<orgName type="institution">University of London</orgName>
							</affiliation>
						</author>
						<title level="a" type="main">Automatic Interlinking of Music Datasets on the Semantic Web</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">8D3B0462EA8F9BBEE51DC426F1484E59</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T23:26+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>H.4 [Information Systems Applications]: Miscellaneous Semantic-Web</term>
					<term>Linked Data</term>
					<term>Music</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>In this paper, we describe current efforts towards interlinking music-related datasets on the Web. We first explain some initial interlinking experiences, and the poor results obtained by taking a naïve approach. We then detail a particular interlinking algorithm, taking into account both the similarities of web resources and of their neighbours. We detail the application of this algorithm in two contexts: to link a Creative Commons music dataset to an editorial one, and to link a personal music collection to corresponding web identifiers. The latter provides a user with personally meaningful entry points for exploring the web of data, and we conclude by describing some concrete tools built to generate and use such links.</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 Linking Open Data community project <ref type="bibr" target="#b3">[3]</ref> aims at publishing and interlinking open datasets by following simple rules <ref type="bibr" target="#b2">[2]</ref> for linking data. The publication step can to some extent be automated, using tools such as D2R or Open-Link Virtuoso (which both allow relational databases to be published as linked data) or P2R (which allows SWI-Prolog knowledge bases to be published in the same way). All these tools handle declarative mappings from a given data structure to corresponding web resources and associated RDF descriptions. Once this publication is achieved, we still have to create links to other datasets, in order for a user agent to navigate from one to another. A typical example of such interlinking would be the following one, where a music band LDOW'08, April 28, 2008, Beijing, China in a Creative Commons label is linked to its location in the Geonames dataset, and to the corresponding resource in an editorial database<ref type="foot" target="#foot_0">1</ref> : &lt;http://dbtune.org/jamendo/artist/5&gt; foaf:based_near &lt;http://sws.geonames.org/2991627/&gt; ; owl:sameAs &lt;http://zitgist.com/music/artist/ 0781a3f3-645c-45d1-a84f-76b4e4decf6d&gt;.</p><p>Then, you may access the actual audio content from the Creative Commons label, some extra information such as the birth dates of the members of this band from the editorial dataset, and detailed geographic information (latitude, longitude, hierarchy of geographical features) from the Geonames dataset.</p><p>For small datasets published manually (such as an individual's FOAF file), it is possible to create such links manually. However, doing so for large datasets is impractical: we need a way to automatically detect the overlapping parts of heterogeneous datasets. In this paper, we detail a few algorithms that have been developed, implemented and practically deployed to interlink different music-related datasets.</p><p>We mainly focus on the most sophisticated one, applicable in a Linked Data context, and taking into account not only the similarities of single resources but also the similarities of their neighbours. We evaluate how this algorithm performs when applied to link a real-world Creative Commons dataset to an editorial one. We also show how a personal music collection can be treated as one such dataset, enabling a user to benefit from the growing body of knowledge on the Semantic Web in a personally meaningful way.</p><p>We define the mapping problem as follows. We consider two RDF datasets D1 and D2, respectively describing a number of web resources ri and si. We consider the problem of matching resources-finding resources sy in our target dataset, D2, which identify the same object as a resource rx in our seed dataset, D1. For example, we want to find sy = http://zitgist.com/music/artist/ 0781a3f3-645c-45d1-a84f-76b4e4decf6d for rx = http://dbtune.org/ jamendo/artist/5. All mapping problems in our context can be reduced to this one, even literal expansion where a resource rx is linked to a literal l and we are looking for a resource sy corresponding to l-for example, expanding "Moselle, France" into http://sws.geonames.org/2991627/. In these cases, a simple transformation (creating a blank node between rx and l) is enough to return ourselves to a resource matching problem.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">NAIVE INTERLINKING</head><p>In this section, we describe some naïve approaches to tackling this resource matching problem, and identify their failings.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">Simple literal lookups</head><p>Most datasets provide a literal search facility, either through a dedicated Web service (eg. Geonames, Musicbrainz), or through a SPARQL end-point on which we can use filters on literals, or in some cases built-in literal matching functionality. So one solution to link resources from our two datasets would be to first issue the following query on D1:</p><p>and use the bindings of ?l to issue a literal search on D2.</p><p>We can then try to map the resulting resources to r.</p><p>We used this kind of approach to link the Jamendo dataset to the Geonames one 2 . Jamendo provides information about the location of artists, in the form of a literal string (such as "Moselle, France"). We use this to query the Geonames web service, and get back the corresponding Geonames resource.</p><p>In practice, we found that the literal strings provided by Jamendo are specific enough for this approach to work well.</p><p>In the two instances when more than one candidate was returned for a location string, no link was created.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2">Extended literal lookups</head><p>Although this simple approach can be suitable for interlinking particular datasets in cases where a literal string reliably provides sufficient disambiguation it is unlikely to discriminate suitably in most cases. For example, when trying to apply it to link musical works in the BBC John Peel Sessions to resources in the DBpedia dataset <ref type="bibr" target="#b1">[1]</ref>, we come across the literal "Violet" 3 . The actual song which the algorithm should link to is just one of the sixteen results of the corresponding literal lookup.</p><p>One solution is to add constraints on the resulting resources. For example, by using the DBpedia links to Yago <ref type="bibr">[10]</ref>, we can restrict our resources to be of a specific Yago type, or we can restrict it to be linked to a particular infobox URI (specifying a template for structured data on the corresponding Wikipedia page). This leads us to the following SPARQL query:</p><p>PREFIX p: &lt;http://dbpedia.org/property/&gt; SELECT ?r WHERE { ?r ?p "Violet"@en. { {?r a &lt;http://dbpedia.org/class/yago/Song107048000&gt;} This approach was used to link the musical works and the artists in the BBC John Peel sessions dataset to corresponding resources in DBpedia. Constraints on the target resources were manually defined, and queries taking into account the seed literal and these constraints were issued to the DBpedia SPARQL end-point.</p><p>However, even with restrictions on the nature of target resources, a literal may not be discriminating enough. For example, the resource http://dbtune.org/jamendo/artist/5 is linked to the literal "Both". Searching the Musicbrainz dataset for "Both" while restricting ourselves to artists gives us two results. Likewise, when looking for the Nirvana version of the song "Love Buzz" in the DBpedia dataset, we have to disambiguate between the original song and the Nirvana cover. There is therefore a need for a more sophisticated algorithm, capable of handling such disambiguation.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.">GRAPH MATCHING</head><p>An intuitive approach to disambiguate two artists with the same name would be to check the titles of their releases, and see if they match the titles of the releases in our seed dataset. If by any chance they have releases with the same title, we can check their track titles, and disambiguate using them, and so on. In this section, we develop this idea and give a formal specification of such an algorithm.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Offline graph matching</head><p>Consider the two datasets illustrated in fig. <ref type="figure">1</ref>, with our seed dataset on the left containing a single artist with the name "Both", and the target dataset on the right containing two artists named "Both". We model the two datasets as graphs, with each edge represented as a triple (s, p, o).</p><p>As a first step, we compute initial similarity values between all pairs of resources (s1, s2) and (o1, o2) such that (s1, p, o1) ∈ D1 and (s2, p, o2) ∈ D2. Such similarity values might be calculated by a string similarity algorithm (such as the ones described in section 2 of <ref type="bibr" target="#b12">[12]</ref>) comparing literals directly at- </p><formula xml:id="formula_0">G1 G2 M G1:G2 a = {(1, 4), (2, 5), (3, 6)} 0.9 G1 G2 M G1:G2 b = {(1, 4), (2, 6), (3, 5)} 0.4 G1 G3 M G1:G3 a = {(1, 7), (2, 8)} 0.55 G1 G3 M G1:G3 b = {(1, 7), (3, 8)} 0.55</formula><p>tached to these resources. In our example, this produces the results in table <ref type="table" target="#tab_1">1</ref>.</p><p>Next, we construct a graph similarity measure. In our example, we consider the possible graph mappings in table <ref type="table">2</ref>.</p><p>Then, we associate a measure with such mappings: we sum the similarity values s associated with each pair (x, y) and we normalise it by the number of pairs in the mapping. In our example, the resulting measures are in table <ref type="table">2</ref>.</p><p>Finally, we choose the mapping whose similarity measure is the highest, optionally thresholding to avoid making mappings between graphs which are too dissimilar. In our example, we choose MG1:G2a.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Linked Data context</head><p>Now, we apply this algorithm in a Linked Data <ref type="bibr" target="#b2">[2]</ref> context, where we discover our graphs as we go: the main idea being that we update the graph mappings and their measures as we update our local Semantic Web cache. This is necessary because in general the size of the datasets D1 and D2 will be prohibitive; if not for loading both datasets, then for computing all the possible graph mappings between them.</p><p>Our starting point is now a single URI r in a dataset D1.</p><p>We try to find the corresponding s in a dataset D2, as well as mappings of resources in the neighbourhood of r. We illustrate this using the same example as the one in § 3.1: we want to map the URI http://dbtune.org/jamendo/artist/5 to the corresponding Musicbrainz URI. As part of the same process we wish to map corresponding albums and tracks for this artist.</p><p>In the following, we will use Named Graphs <ref type="bibr" target="#b5">[5]</ref>, in order to track the provenance of a particular graph, and we let Gx denote the graph retrieved when dereferencing x.</p><p>The first thing we do is to retrieve Gr, and extract a suitable label l for r (using dc:title or f oaf :name properties, etc). Now, we need to access some potential candidates for s. To do that, we use the same approach as described in § 2.2. We issue a query (through a SPARQL end-point or custom web service) to D2 which involves l and constraints over what we are looking for. This gives us a list of resources.</p><p>For each s k in this list, we access Gs k . Now, for all possible graph mappings MG r :Gs k ,i, we compute a measure as defined in § 3.1. If we can make a clear decision now (ie. there is just one measure above our decision threshold), we terminate and choose the corresponding graph mapping. If not, we look for object properties p such that (r, p, o) ∈ Gr and (s k , p, o ) ∈ Gs k , and we obtain Go and G o . <ref type="foot" target="#foot_1">4</ref> Then, we update our possible graph mappings and the associated measures. We iterate this process until we can make a decision (we have one unique mapping with measure above the threshold), or until we can't go any further (no unexplored object properties). Practically, we also limit the maximum number of iterations the algorithm may perform.</p><p>In our example, we first dereference http://dbtune.org/ jamendo/artist/5. We get access to the following facts: our URI is identifying a musical band, it is called "Both", and it made<ref type="foot" target="#foot_2">5</ref> two things: http://dbtune.org/jamendo/record/174 and http://dbtune.org/jamendo/record/33. We now look for an artist named "Both" in the Musicbrainz dataset, through the Musicbrainz web service <ref type="foot" target="#foot_3">6</ref> . This gives us back two URIs: http://zitgist.com/music/artist/ 5f9f2dfb-76f0-4872-ad7d-f9d84a908cb5 and http://zitgist.com/ music/artist/0781a3f3-645c-45d1-a84f-76b4e4decf6d. We dereference them: the first one identifies an artist named "Both" which made two things, and the second one also an artist named "Both" which made one thing.</p><p>We now consider two possible graph mappings (corresponding to the two potential matches of our artist resource), with two measures, both equal to 1. We continue looking for further clues, as there is not yet any way to disambiguate between the two. We take the object property occurring in our three graphs, f oaf :made, and dereference all the objects of this property that we currently know about. Our starting resource made two records, named "Simple Exercice" and "En attendant d'aller sur Mars". The first matching artist in the Musicbrainz dataset made two records, named "Simple exercice" and "En attendant d'aller sur Mars...". The second matching artist made one record, named "The Inevitable Phyllis". We now update the possible graph mappings, and reach the results in table 2. Now, we have one mapping identifiably better than the others, with graph similarity measure 0.9. We choose it, and hence derive the following statements:</p><p>Having chosen a mapping we could go further, to also derive such statements for the tracks in these two albums. Another possible extension of this algorithm is to perform literal lookups in D2 at each step (therefore providing new possible graph mappings each time). This helps ensure we still find the correct mapping in the case that our initial literal lookup does not include the correct resource among its results. For example, the correct target artist might be listed as having a different name in D2 as in D1, such that they do not feature in the results of our initial literal lookup. However, we might have some clues about who this artist is from the names of the albums they produced, and so performing additional literal lookups (on the album titles) may allow us to find the correct artist and hence the correct mapping. Such a variant of this algorithm is implemented in the GNAT software described in § 4.2.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3">Algorithm definition</head><p>The algorithm described above can be expressed in the following pseudo-code. We assume the existence of a function string similarity(x, y) and define the following additional functions: Our starting point is a URI r in D1 and a decision threshold threshold. Our mapping pseudo-code is then defined as:</p><formula xml:id="formula_1">Foreach s k ∈ lookup(r) M k = {(r, s k )} measure k = measure(M k ) sim k = measure k /|M k | If sim k &gt; threshold for exactly one k, return M k</formula><p>Else, M appings is the list of all M k , and return propagate(M appings) Now, we apply this pseudocode to our earlier "Both" example (r = 1 = http://dbtune.org/jamendo/artist/5), with a threshold of 0.8. This makes us go through the following steps:</p><formula xml:id="formula_2">function propagate(M appings) : Foreach M k ∈ M appings: measure k = measure(M k ) Foreach p s.t. (∃(r, r ) ∈ M k , ∃(r, p, o) ∈ Gr, ∃(r , p, o ) ∈ G r and ∀M ap ∈ M appings, (o, o ) / ∈ M ap): Foreach (r, r ) ∈ M k : O k,</formula><formula xml:id="formula_3">lookup(r) = {4, 7} M 1 = {(1, 4)}, sim 1 = 1 M 2 = {(1, 7)}, sim 2 = 1 M appings = {{(1, 4)}, {(1, 7)}} propagate({{(1, 4)}, {(1, 7)}}) k = 1, p = f oaf :made O 1,1,f oaf :made = {2, 3}, O 1,4,f oaf :made = {5, 6} Objmap 1,1 = {(2, 5), (3, 6)}, Objmap 1,2 = {(2, 6), (3, 5)} sim 1,1 = 0.9, sim 1,2 = 0.4 k = 2, p = f oaf :made O 2,1,f oaf :made = {2, 3}, O 2,7,f oaf :made = {8} Objmap 2,1 = {(2, 8)}, Objmap 2,2 = {(3, 8)} sim 2,1 = 0.</formula><p>55, sim 2,2 = 0.55 Now, sim 1,1 is the only sim k,i above the threshold, we therefore choose {(1, 4), (2, 5), (3, 6)} as our mapping, which corresponds to the RDF code in § 3.2.</p><p>Of course, several heuristics could be added to this pseudo-code, in order to improve the scalability of the algorithm. In practice, we associate weights to properties, in order to start from the most informative one (f oaf :made, for example).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.">EXPERIMENTS</head><p>In this section, we detail two experiments using this algorithm, and their respective evaluations. The first one deals with the automatic interlinking of two online music datasets. The second one deals with the linking of a personal music collection towards corresponding web identifiers.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.1">Linking two overlapping web datasets</head><p>In this section, we focus on a concrete interlinking which has been achieved using this algorithm, between two overlapping web datasets: Jamendo and Musicbrainz. We implemented this algorithm<ref type="foot" target="#foot_4">7</ref> in SWI-Prolog <ref type="bibr" target="#b11">[11]</ref>, with only one lookup on the Musicbrainz end-point, at the artist level. Our algorithm derived 10944 similarity statements for artist, record, and track resources so far, which allows us to get detailed editorial information from Musicbrainz, and the actual audio content, as well as tags, from the Jamendo dataset.</p><p>We focus our evaluation on artist resources. As we perform only one lookup, at the artist level, no tracks or records can be matched if the artist is not. In order to evaluate the quality of the interlinking, we take a random sample from the Jamendo dataset: we first collect every single artist URI 8 , and we randomly select 60 from among them. Then, we run our mapping algorithm and manually check whether the mappings are correct. Each tested resource therefore falls into one of the following categories:</p><p>• An owl:sameAs link is derived : correct (same artist in the Jamendo and in the Musicbrainz datasets) ;</p><p>• An owl:sameAs link is derived : incorrect (different artists) ;</p><p>• No link is derived : correct (there is a corresponding artist in the Musicbrainz dataset) ;</p><p>• No link is derived : incorrect (no corresponding artists in the Musicbrainz dataset).</p><p>The results <ref type="foot" target="#foot_5">9</ref> , in terms of how many resources fall within each of the above defined categories, are shown in table <ref type="table" target="#tab_4">3</ref>. In our test dataset, the disambiguation was needed in 16 cases. For example, one of the artist resources was named "Hair", which matches four resources within Musicbrainz, none of them being the same band. The first case that failed is due to an implementation mistake, failing to normalise the graph similarity measures correctly when the target graph is bigger than the seed one (in this case, the artist had two releases on Musicbrainz, and just one on Jamendo). The second case that failed is due to the fact that the Musicbrainz RDF is outdated (the artist does not exist in the RDF dump, but does exist in the Musicbrainz database).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.2">Linking personal music collections</head><p>Personal music collections can also be a part of the web of data. The Music Ontology <ref type="bibr" target="#b9">[9]</ref> makes the same distinction as FRBR between manifestations (all physical objects that bear the same characteristics, eg. a particular album) and items (a concrete entity, eg. my copy of the album on CD). A manifestation and a corresponding item are linked through a predicate mo:available_as. Therefore, given a set of audio files in a personal music collection, it is possible to keep track of the set of statements linking this collection to identifiers elsewhere in the Semantic Web which denote the corresponding manifestations. These statements provide a set of entry points to the Semantic Web, allowing access to information such as the birth date of the artists responsible for items in the collection, geographical locations of the recordings, etc.</p><p>GNAT is an implementation of automatic linking from a personal audio collection to the Musicbrainz dataset-it uses audio fingerprinting and available metadata to find corresponding dereferencable identifiers, and then outputs RDF http://dbtune.org:2105/sparql/?query=select%20distinct%20%3Fa %20where%20%7B%3Fa%20a%20mo%3AMusicArtist%7D statements making the links between local audio files and the remote manifestation identifiers. The fingerprinting functionality can be useful when the metadata available is particularly poor, but since it is highly dependent on the fingerprinting service chosen, we concern ourselves here solely with the metadata-based approach.</p><p>All modern audio encodings allow for the inclusion of metadata "tags" alongside audio data in a file, such that each audio file can include the kind of editorial information contained in the data sets described above. We can therefore consider a reasonably well tagged personal music collection to be just another music data set, apply the algorithm described in § 3, and hence link each local audio file to a corresponding resource on the Semantic Web. GNAT uses the variant discussed at the end of § 3.2 which maps artists, albums and tracks, performing literal lookups at each stage.</p><p>For each local audio file, a simple seed graph is constructed based on the artist, album, title and track number specified in the file's ID3 tag (see fig. <ref type="figure" target="#fig_0">2</ref> for an example). It proceeds as set out in § 3.3 until a single best mapping is found. After processing a directory of files in this way, GNAT outputs an RDF file providing mo:available_as links from URIs in the Zitgist publication of MusicBrainz data to the local audio files. For example :</p><p>&lt;http://zitgist.com/music/track/ 1adfecb7-875f-4203-b3b1-8e2e643f94a2&gt; mo:available_as &lt;file:///mnt/music/Artists/Nirvana/Bleach/track5.mp3&gt;</p><p>Using this algorithm rather than one of the more naïve approaches should allow GNAT to be robust to various inaccuracies in the local files' metadata. We evaluated GNAT's behaviour in the face of such problems by taking a correctlytagged MP3 file of the Beatles track "I want to hold your hand" and artificially introducing various mistakes. The Mu-sicBrainz dataset lists no less than 25 releases for this track by The Beatles, and dozens of artists with songs of the same name. The correct set of metadata is shown in table <ref type="table" target="#tab_5">4</ref> and results are shown in table <ref type="table">5</ref>.</p><p>We can see that GNAT performs well in the face of inaccurate metadata. The release chosen when the album field is missing or set to a random string is arguably correct-it is the same CD, released as part of a box set. One would hope that the release "Meet the Beatles!" would be chosen in the case of the album being misspelled.</p><p>With a practical implementation some trade-offs must be made. In the case of setting the artist to "Al Green", we have two conflicting pieces of information (artist and album) and our implementation here chooses the mapping for which the artist matches. A more sophisticated version of GNAT might consider other tracks in the current directory to establish that the track most likely comes from the Beatles release rather than Al Green's release. Such links from a user's own files to information on the Semantic Web could be a significant step towards making data on the Web available and relevant to people, but a user agent must act on such links before they are directly useful to a human. In the next section we describe a companion tool to GNAT, designed to exploit the links GNAT produces.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.3">Use-cases</head><p>For the links between a user's files and Semantic Web resources to be useful, an application must have some information about the resources. The GNARQL program in the motools project is beginning to explore some of the possibilities in this direction. The program loads in all the owl:sameAs links produced by GNAT, dereferences the corresponding URIs, and then aggregates additional information about those resources.</p><p>The basic mechanism for aggregating additional information is to crawl outwards from the given resource, dereferencing linked resources and adding their descriptions to the local RDF store. In the simplest case, this crawling can be unguided, simply following all links regardless of the properties used, and performing a breadth-first traversal of the Semantic Web from all known resources. More sophisticated crawling strategies may lead to better aggregation for a user's purposes. For example, GNARQL can prioritise links which use properties from the Music Ontology (or other specified namespaces). This helps ensure that relevant information is prioritised over less obviouslyuseful information.</p><p>Information relating to resources of interest may also be retrieved based on specific rules. For example, if we know that the SBSimilarity service provides "similar track" information about tracks by appending their Musicbrainz ID to a given prefix 10 , we can specify a rule in GNARQL for generating rdfs:seeAlso links from known tracks to the corresponding documents in the SBSimilarity namespace. These rule-derived links will then be followed as part of the crawling strategy, and their information added to the local RDF store.</p><p>Naturally, the information held in GNARQL's store need not come solely from GNAT. In fact, any RDF data in the designated directory tree will be loaded. In our research group, this means that Chord Ontology 11 transcriptions are held alongside the MusicBrainz data retrieved from Zitgist and social tag data retrieved from various websites.</p><p>To enable applications to take advantage of this aggregated data, GNARQL provides a SPARQL endpoint. This frees end-user applications from the need to themselves maintain a database relating to the user's music collection, and allows multiple applications to benefit from a single store of aggregated information.</p><p>Based on datasets available today, some example queries such user interfaces might pass on to GNARQL include "Find tracks which are performances of works by Russian composers around the turn of the twentieth century", "Find me cover versions of rock songs in non-rock genres" or potentially (by using information linked from a user's FOAF file) "Find me gigs by the artists I play frequently which fit with my vacation schedule".</p><p>To experiment with browsing the data aggregated by GNARQL, we have developed a prototype user interface, based heavily on the /facet program described in <ref type="bibr" target="#b6">[6]</ref>. This provides a web browser-based interface for exploring the aggregated information, and performing simple facet-based </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.">FUTURE WORK 5.1 Work on the interlinking algorithm</head><p>The algorithm proposed here has several limitations. Firstly, it doesn't specify any heuristics to use if the ontologies differ.</p><p>In this case,we would need a different methodology, perhaps inspired by the approach described in <ref type="bibr" target="#b8">[8]</ref>. Secondly, the algorithm is designed for the case where a meaningful similarity measure between pairs of individual resources is available (here, using string similarity of labels attached to them with certain predicates). In a linking scenario where there is no particularly good similarity measure on individual resources and the graph structure is therefore the most salient factor for correct linking, another algorithm may be more appropriate. In this case, Melnik's "similarity flooding" <ref type="bibr" target="#b7">[7]</ref> approach could be used, which prioritises graph structure rather than node similarity, relying on a post-processing stage to filter out unsuitable mappings.</p><p>Based on these observations, further work developing the interlinking algorithm could provide a framework for interlinking a wider variety of datasets.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.2">Work on implementations</head><p>Currently, the GNAT tool implements two distinct approaches to finding manifestation URIs for local audio files. One uses just the available metadata, and this approach is described in § 4.2, above. Since audio metadata in personal collections is frequently incomplete, inaccurate, or missing entirely, this may not be sufficient. The other approach therefore exploits audio fingerprinting <ref type="bibr" target="#b4">[4]</ref> to try to identify the track, and then if there is remaining ambiguity the local metadata is used to choose a single URI.</p><p>Ideally, we could use the fingerprint of an audio file as just another piece of information about the track, incorporating it into our graph mapping approach. In practice, the main fingerprinting service available with a large supporting database, MusicIP's MusicDNS service <ref type="foot" target="#foot_6">12</ref> , is relatively opaque. Fingerprinting a track either returns a PUID, which can be used to perform a search on MusicBrainz, or returns no results. It therefore provides only a boolean test for similarity, and some hidden decisions have been made by the MusicDNS service using any available metadata. As a result, there is no obvious way to uniformly combine fingerprint information and local metadata in a graph mapping approach.</p><p>A fingerprinting service which exposed the server-side database and the actual process of matching a fingerprint to a database entry could allow for some more sophisticated linkage between personal audio collections and the Semantic Web. We have some hopes that Last.fm's recently launched fingerprinting service might gather a large database and make it freely available in a flexible way.</p><p>Although the core of the GNARQL tool is in place, more work is required to explore different approaches to crawling. Also, since Semantic Web user interfaces are relatively young, more work is required to fully exploit the functionality GNARQL is beginning to exhibit.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6.">CONCLUSION</head><p>In this paper, we described several different methods for interlinking Semantic Web datasets. We mentioned two naïve approaches, leading to the construction of a more elaborate algorithm, which takes into account not only the similarity of the resources themselves but also the similarity of their neighbours. Its main advantages are to provide a best-effort mapping, without any need for a learning step (for which we would have to manually interlink some resources), and to work in a linked data environment, where new resources are discovered as we get through the mapping process. We described two implementations of this algorithm. The first one was used to interlink artists, records, and tracks in two online music datasets: Jamendo and Musicbrainz, and the second one allows any user to link their personal music collection to corresponding identifiers in the Musicbrainz dataset.</p><p>We evaluated these two implementations separately.</p><p>Creating links between heterogeneous datasets can dramatically enhance the usefulness of each. Using such links, a Semantic Web user agent can jump from a band within the Jamendo dataset to the corresponding resource in the Musicbrainz one, to the corresponding resource in DBpedia, to its approximate geographic location, to the famous composers born in that city, etc. However, if it is possible to define such links manually for small datasets, it is impossible for large ones. We need methodologies to discover them in an automated way. The techniques presented here are far from perfect, but represent some initial efforts in this direction.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="7.">DATASETS</head><p>The following datasets are mentioned throughout the paper: </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="8.">NAMESPACES</head><p>We use the following namespaces throughout our RDF examples:</p><p>@prefix mo: &lt;http://purl.org/ontology/mo/&gt;. @prefix foaf: &lt;http://xmlns.com/foaf/0.1/&gt;. @prefix owl: &lt;http://www.w3.org/2002/07/owl#&gt;.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Figure 2 :</head><label>2</label><figDesc>Figure 2: Constructing a graph from local music metadata</figDesc><graphic coords="5,340.72,53.80,191.28,148.49" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0"><head></head><label></label><figDesc></figDesc><graphic coords="8,104.01,53.80,401.69,195.57" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head>Table 1 :</head><label>1</label><figDesc>Initial similarity map</figDesc><table><row><cell cols="2">Resource 1 Resource 2</cell><cell>Initial Similarity</cell></row><row><cell>1</cell><cell>4</cell><cell>1</cell></row><row><cell>1</cell><cell>7</cell><cell>1</cell></row><row><cell>2</cell><cell>5</cell><cell>0.9</cell></row><row><cell>3</cell><cell>6</cell><cell>0.8</cell></row><row><cell>2</cell><cell>6</cell><cell>0.1</cell></row><row><cell>3</cell><cell>5</cell><cell>0.1</cell></row><row><cell>2</cell><cell>8</cell><cell>0.1</cell></row><row><cell>3</cell><cell>8</cell><cell>0.1</cell></row><row><cell cols="3">Table 2: Possible graph mappings-(x, y) ≡ {x</cell></row><row><cell cols="3">owl:sameAs y}, and associated measures</cell></row><row><cell>Graphs</cell><cell>Mapping</cell><cell>Measures</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_3"><head></head><label></label><figDesc>GrO k,r,p is the list of all o such that (r , p, o)∈ G r Foreach Objmap k,i ∈ S r combinations(O k,r,p , O k,r,p ): sim k,i = (measure k + measure(Objmap k,i ))/(|M k | + |Objmap k,i |) If no sim k,i , fail If sim k,i &gt; threshold for exactly one {k, i} pair, return append(M k , Objmap k,i )Else, N ewM appings is the list of all append(M k , Objmap k,i ), and return propagate(N ewM appings) (if the maximum number of recursions is not reached, otherwise fail)</figDesc><table /><note>r,p is the list of all o such that (r, p, o) ∈</note></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_4"><head>Table 3 :</head><label>3</label><figDesc>Evaluation of the Jamendo/Musicbrainz interlinking</figDesc><table><row><cell></cell><cell cols="2">Link derived Link not derived</cell></row><row><cell>Correct</cell><cell>5</cell><cell>53</cell></row><row><cell>Incorrect</cell><cell>0</cell><cell>2</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_5"><head>Table 4</head><label>4</label><figDesc></figDesc><table><row><cell cols="2">: Base (correct) metadata for GNAT evalu-</cell></row><row><cell>ation</cell><cell></cell></row><row><cell>Artist</cell><cell>"The Beatles"</cell></row><row><cell>Album</cell><cell>"Meet The Beatles!"</cell></row><row><cell>Title</cell><cell>"I Want To Hold Your Hand"</cell></row><row><cell cols="2">Track Num 1</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_6"><head></head><label></label><figDesc>The map functionality allows the results of such queries to be plotted geographically, as shown in fig.3.</figDesc><table><row><cell cols="5">10 eg. http://isophonics.net/music/signal/280b7fae-724e-4a6d-8e91-</cell></row><row><cell>6fe3f0a2bdad</cell><cell>provides</cell><cell>extra</cell><cell>information</cell><cell>about</cell></row><row><cell cols="5">http://zitgist.com/music/signal/280b7fae-724e-4a6d-8e91-6fe3f0a2</cell></row><row><cell>bdad</cell><cell></cell><cell></cell><cell></cell><cell></cell></row></table><note>11 See http://purl.org/ontology/chord/ queries.</note></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_7"><head></head><label></label><figDesc>Jamendo on DBTune: http://dbtune.org/jamendo/ BBC John Peel sessions: http://dbtune.org/bbc/peel/ SBSimilarity: http://www.isophonics.net/SBSimilarity Musicbrainz RDF: http://zitgist.com/music/ DBpedia: http://dbpedia.org/ Geonames: http://geonames.org/</figDesc><table /></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">We use the Turtle notation throughout the paper, with the namespaces defined in § 8</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="4" xml:id="foot_1">We could additionally consider triples of the form (o, p, r) and (o , p, s k ).</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="5" xml:id="foot_2">Captured through the f oaf :made predicate</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="6" xml:id="foot_3">See http://wiki.musicbrainz.org/XMLWebService</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="7" xml:id="foot_4">The source code of all the software mentioned is available as part of the motools project: http://sourceforge.net/projects/motools</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="9" xml:id="foot_5">The detailed results, resource by resource, are available at http://moustaki.org/resources/results.txt</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="12" xml:id="foot_6">See http://www.musicip.com/dns/</note>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="9.">ACKNOWLEDGEMENTS</head><p>The authors acknowledge the support of both the Centre For Digital Music and the Department of Computer Science at Queen Mary University of London for the studentship for Yves Raimond. This work has been partially supported by the EPSRC-funded ICT project OMRAS-2 (EP/E017614/1). Figure 3: Navigating a personal audio collection using aggregated Semantic Web data</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<title/>
		<author>
			<persName><surname>References</surname></persName>
		</author>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Dbpedia: A nucleus for a web of open data</title>
		<author>
			<persName><forename type="first">S</forename><surname>Auer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Bizer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Lehmann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Kobilarov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Cyganiak</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Z</forename><surname>Ives</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the International Semantic Web Conference</title>
				<meeting>the International Semantic Web Conference<address><addrLine>Busan, Korea</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2007">November 11-15 2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<title level="m" type="main">Linked data. World wide web design issues</title>
		<author>
			<persName><forename type="first">Tim</forename><surname>Berners-Lee</surname></persName>
		</author>
		<ptr target="http://www.w3.org/DesignIssues/LinkedData.html" />
		<imprint>
			<date type="published" when="2006-07">July 2006. September 2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Interlinking open data on the web</title>
		<author>
			<persName><forename type="first">Chris</forename><surname>Bizer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Tom</forename><surname>Heath</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Danny</forename><surname>Ayers</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Yves</forename><surname>Raimond</surname></persName>
		</author>
		<ptr target="http://www.eswc2007.org/pdf/demo-pdf/LinkingOpenData.pdf" />
	</analytic>
	<monogr>
		<title level="m">Demonstrations Track, 4th European Semantic Web Conference</title>
				<meeting><address><addrLine>Innsbruck, Austria</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2007-09">2007. September 2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">A review of audio fingerprinting</title>
		<author>
			<persName><forename type="first">P</forename><surname>Cano</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Batlle</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Kalker</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Haitsma</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">The Journal of VLSI Signal Processing</title>
		<imprint>
			<biblScope unit="volume">41</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="271" to="284" />
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Named graphs</title>
		<author>
			<persName><forename type="first">Jeremy</forename><forename type="middle">J</forename><surname>Carroll</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Christian</forename><surname>Bizer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Pat</forename><surname>Hayes</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Patrick</forename><surname>Stickler</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of Web Semantics</title>
		<imprint>
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">The Semantic Web -ISWC</title>
		<author>
			<persName><forename type="first">Michiel</forename><surname>Hildebrand</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Jacco</forename><surname>Van Ossenbruggen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Lynda</forename><surname>Hardman</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Lecture Notes in Computer Science, chapter /facet: A Browser for Heterogeneous Semantic Web Repositories</title>
				<meeting><address><addrLine>Berlin / Heidelberg</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2006">2006. 2006. 2006</date>
			<biblScope unit="volume">4273</biblScope>
			<biblScope unit="page" from="272" to="285" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Similarity flooding: a versatile graph matching algorithm and itsapplication to schema matching</title>
		<author>
			<persName><forename type="first">S</forename><surname>Melnik</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Garcia-Molina</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Rahm</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 18th International Conference on Data Engineering</title>
				<meeting>the 18th International Conference on Data Engineering<address><addrLine>San Jose, CA, USA</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2002-03">February-March 2002</date>
			<biblScope unit="page" from="117" to="128" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Data fusion with record linkage</title>
		<author>
			<persName><forename type="first">M</forename><surname>Neiling</surname></persName>
		</author>
		<ptr target="http://citeseer.ist.psu.edu/189652.html" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the Workshop &apos;Foederierte Datenbanken</title>
				<editor>
			<persName><forename type="first">I</forename><surname>Schmitt</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">C</forename><surname>Turker</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">E</forename><surname>Hildebrandt</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">M</forename><surname>Hoding</surname></persName>
		</editor>
		<meeting>the Workshop &apos;Foederierte Datenbanken<address><addrLine>Aachen</addrLine></address></meeting>
		<imprint>
			<date type="published" when="1998-01">1998. January 2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">The music ontology</title>
		<author>
			<persName><forename type="first">Yves</forename><surname>Raimond</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Samer</forename><surname>Abdallah</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Mark</forename><surname>Sandler</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Frederick</forename><surname>Giasson</surname></persName>
		</author>
		<ptr target="http://ismir2007.ismir.net/proceedings/ISMIR2007_p417_raimond.pdf" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the International Conference on Music Information Retrieval</title>
				<meeting>the International Conference on Music Information Retrieval</meeting>
		<imprint>
			<date type="published" when="2007-09">September 2007. January 2008</date>
			<biblScope unit="page" from="417" to="422" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Yago -a core of semantic knowledge</title>
		<author>
			<persName><forename type="first">Fabian</forename><forename type="middle">M</forename><surname>Suchanek</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Gjergji</forename><surname>Kasneci</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Gerhard</forename><surname>Weikum</surname></persName>
		</author>
		<ptr target="http://www.mpi-inf.mpg.de/~suchanek/publications/www2007.pdf" />
	</analytic>
	<monogr>
		<title level="m">16th international World Wide Web conference</title>
				<imprint>
			<date type="published" when="2007-01">2007. january 2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<monogr>
		<title level="m" type="main">SWI-Prolog and the web. Theory and Practice of Logic Programming</title>
		<author>
			<persName><forename type="first">Jan</forename><surname>Wielemaker</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Zhisheng</forename><surname>Huang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Lourens</forename><surname>Van Der</surname></persName>
		</author>
		<author>
			<persName><surname>Meij</surname></persName>
		</author>
		<ptr target="http://hcs.science.uva.nl/projects/SWI-Prolog/articles/TPLP-plweb.pdf" />
		<imprint>
			<date type="published" when="2003-09">2003. September 2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<monogr>
		<title level="m" type="main">Advanced methods for record linkage</title>
		<author>
			<persName><forename type="first">W</forename><surname>Winkler</surname></persName>
		</author>
		<ptr target="http://citeseer.ist.psu.edu/254560.html" />
		<imprint>
			<date type="published" when="1994-01">1994. January 2008</date>
			<publisher>U.S. Bureau of the Census</publisher>
			<pubPlace>Washington, DC</pubPlace>
		</imprint>
		<respStmt>
			<orgName>Statistical Research Division</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Technical report</note>
</biblStruct>

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