master/ldif/examples/music/full/linkspecs/musicLinkSpec.xml

User picture

Commiter: Andrea Matteini

Author: Andrea Matteini

Revision: 67000aced3


File Size: 5.42 KB

(December 21, 2011 14:12 UTC) 5 months ago

Minor fixes (fix #76)

 
Show/hide line numbers
<?xml version="1.0" encoding="utf-8" ?>
<Silk xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:noNamespaceSchemaLocation="../../xsd/LinkSpecificationLanguage.xsd" >
    <Prefixes>
        <Prefix id="rdf" namespace="http://www.w3.org/1999/02/22-rdf-syntax-ns#" />
        <Prefix id="rdfs" namespace="http://www.w3.org/2000/01/rdf-schema#" />
        <Prefix id="owl" namespace="http://www.w3.org/2002/07/owl#" />
        <Prefix id="mo" namespace="http://purl.org/ontology/mo/" />
        <Prefix id="dbpediaowl" namespace="http://dbpedia.org/ontology/" />
        <Prefix id="dc" namespace="http://purl.org/dc/elements/1.1/" />
        <Prefix id="foaf" namespace="http://xmlns.com/foaf/0.1/" />
        <Prefix id="freebase" namespace="http://rdf.freebase.com/ns/" />
        <Prefix id="bio" namespace="http://rdf.freebase.com/ns/" />
    </Prefixes>

    <Interlinks>

        <Interlink id="MusicArtist">
            <LinkType>owl:sameAs</LinkType>

            <SourceDataset dataSource="SOURCE" var="a">
                <RestrictTo>?a rdf:type mo:MusicArtist .</RestrictTo>
            </SourceDataset>

            <TargetDataset dataSource="TARGET" var="b">
                <RestrictTo>?b rdf:type mo:MusicArtist .</RestrictTo>
            </TargetDataset>

            <LinkageRule>
                <Aggregate type="average">
                    <Aggregate type="max">
                        <Compare metric="jaccard" threshold="0.4">
                            <Input path="?a/foaf:member/rdfs:label" />
                            <Input path="?a/foaf:member/rdfs:label" />
                        </Compare>
                        <Compare metric="date" threshold="0.0">
                            <Input path="?a/dbpediaowl:birthDate" />
                            <Input path="?b/dbpediaowl:birthDate" />
                        </Compare>
                        <Compare metric="jaccard" threshold="0.4">
                            <Input path="?a/foaf:made/rdfs:label" />
                            <Input path="?b/foaf:made/rdfs:label" />
                        </Compare>
                    </Aggregate>
                    <Compare metric="equality" >
                        <Input path="?a/rdfs:label" />
                        <Input path="?b/rdfs:label" />
                    </Compare>
                </Aggregate>
            </LinkageRule>

            <Filter />
        </Interlink>

        <Interlink id="Label">
            <LinkType>owl:sameAs</LinkType>

            <SourceDataset dataSource="SOURCE" var="a">
                <RestrictTo>?a rdf:type mo:Label .</RestrictTo>
            </SourceDataset>

            <TargetDataset dataSource="TARGET" var="b">
                <RestrictTo>?b rdf:type mo:Label .</RestrictTo>
            </TargetDataset>

            <LinkageRule>
                <Compare metric="equality" >
                    <TransformInput function="lowerCase">
                        <Input path="?a/rdfs:label" />
                    </TransformInput>
                    <TransformInput function="lowerCase">
                        <Input path="?b/rdfs:label" />
                    </TransformInput>
                </Compare>
            </LinkageRule>

            <Filter/>
        </Interlink>


        <Interlink id="Genre">
            <LinkType>owl:sameAs</LinkType>

            <SourceDataset dataSource="SOURCE" var="a">
                <RestrictTo>?a rdf:type mo:Genre .</RestrictTo>
            </SourceDataset>

            <TargetDataset dataSource="TARGET" var="b">
                <RestrictTo>?b rdf:type mo:Genre .</RestrictTo>
            </TargetDataset>

            <LinkageRule>
                <Compare metric="equality">
                    <TransformInput function="lowerCase">
                        <TransformInput function="alphaReduce">
                            <Input path="?a/rdfs:label" />
                        </TransformInput>
                    </TransformInput>
                    <TransformInput function="lowerCase">
                        <TransformInput function="alphaReduce">
                            <Input path="?b/rdfs:label" />
                        </TransformInput>
                    </TransformInput>
                </Compare>
            </LinkageRule>

            <Filter />
        </Interlink>


        <Interlink id="Record">
            <LinkType>owl:sameAs</LinkType>

            <SourceDataset dataSource="SOURCE" var="a">
                <RestrictTo>?a rdf:type mo:Record .</RestrictTo>
            </SourceDataset>

            <TargetDataset dataSource="TARGET" var="b">
                <RestrictTo>?b rdf:type mo:Record .</RestrictTo>
            </TargetDataset>

            <LinkageRule>
                <Aggregate type="average">
                    <Compare metric="equality">
                        <TransformInput function="lowerCase">
                            <Input path="?a/rdfs:label" />
                        </TransformInput>
                        <TransformInput function="lowerCase">
                            <Input path="?b/rdfs:label" />
                        </TransformInput>
                    </Compare>
                    <Compare metric="equality">
                        <Input path="?a\foaf:made/rdfs:label" />
                        <Input path="?b\foaf:made/rdfs:label" />
                    </Compare>
                </Aggregate>
            </LinkageRule>

            <Filter />
        </Interlink>

    </Interlinks>

</Silk>