@base <http://www.linklion.org/ontology> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix : <ns/> .
@prefix llmap: <mapping/> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix lllink: <link/> .
@prefix llalg: <algorithm/> .
@prefix void: <http://rdfs.org/ns/void#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix lldat: <dataset/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix llfw: <framework/> .
@prefix llver: <version/> .
@prefix llont: <#> .
@prefix lden: <lden/> .

dcterms:license
    a owl:DatatypeProperty .

void:Dataset
    a owl:Class ;
    rdfs:subClassOf prov:Entity .

doap:Project
    a owl:Class .

doap:Version
    a owl:Class .

doap:release
    a owl:InverseFunctionalProperty, owl:ObjectProperty .

doap:revision
    a owl:DatatypeProperty .

<>
    a owl:Ontology ;
    rdfs:isDefinedBy "http://www.linklion.org/ontology" ;
    rdfs:label "LinkLion - the Link Discovery Portal"@en ;
    owl:versionInfo "0.1"@en .

llont:Algorithm
    a owl:Class ;
    rdfs:label "Algorithm"@en ;
    rdfs:subClassOf prov:Activity, [
        a owl:Restriction ;
        owl:onDataRange xsd:string ;
        owl:onProperty llont:parameters ;
        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
    ], [
        a owl:Restriction ;
        owl:onClass llont:LDFrameworkVersion ;
        owl:onProperty prov:wasAssociatedWith ;
        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
    ], [
        a owl:Restriction ;
        owl:onDataRange xsd:string ;
        owl:onProperty foaf:name ;
        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
    ], [
        a owl:Restriction ;
        owl:onDataRange xsd:dateTime ;
        owl:onProperty prov:generatedAtTime ;
        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
    ] .

llont:LDFramework
    a owl:Class ;
    rdfs:label "Link Discovery Framework"@en ;
    rdfs:subClassOf doap:Project, prov:Agent, [
        a owl:Restriction ;
        owl:onDataRange xsd:string ;
        owl:onProperty foaf:name ;
        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
    ] .

llont:LDFrameworkVersion
    a owl:Class ;
    rdfs:label "Link Discovery Framework Version"@en ;
    rdfs:subClassOf doap:Version, prov:Agent, [
        a owl:Restriction ;
        owl:onDataRange xsd:string ;
        owl:onProperty foaf:name ;
        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
    ], [
        a owl:Restriction ;
        owl:onDataRange xsd:anyURI ;
        owl:onProperty dcterms:license ;
        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
    ] .

llont:Link
    a owl:Class ;
    rdfs:label "Link"@en ;
    rdfs:subClassOf prov:Entity, [
        a owl:Restriction ;
        owl:onClass rdfs:Resource ;
        owl:onProperty rdf:predicate ;
        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
    ], [
        a owl:Restriction ;
        owl:onClass rdfs:Resource ;
        owl:onProperty rdf:subject ;
        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
    ], [
        a owl:Restriction ;
        owl:onClass rdfs:Resource ;
        owl:onProperty rdf:object ;
        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
    ], [
        a owl:Restriction ;
        owl:onClass llont:Mapping ;
        owl:onProperty prov:wasDerivedFrom ;
        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
    ] .

llont:Mapping
    a owl:Class ;
    rdfs:label "Mapping"@en ;
    rdfs:subClassOf prov:Entity, [
        a owl:Restriction ;
        owl:onDataRange xsd:anyURI ;
        owl:onProperty llont:storedAt ;
        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
    ], [
        a owl:Restriction ;
        owl:onClass void:Dataset ;
        owl:onProperty llont:hasSource ;
        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
    ], [
        a owl:Restriction ;
        owl:onDataRange xsd:dateTime ;
        owl:onProperty prov:generatedAtTime ;
        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
    ], [
        a owl:Restriction ;
        owl:onClass void:Dataset ;
        owl:onProperty llont:hasTarget ;
        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
    ] .

llont:hasSource
    a owl:ObjectProperty ;
    rdfs:domain llont:Mapping ;
    rdfs:range void:Dataset .

llont:hasTarget
    a owl:ObjectProperty ;
    rdfs:domain llont:Mapping ;
    rdfs:range void:Dataset .

llont:parameters
    a owl:DatatypeProperty ;
    rdfs:domain llont:Algorithm ;
    rdfs:range xsd:string .

llont:storedAt
    a owl:DatatypeProperty ;
    rdfs:domain llont:Mapping ;
    rdfs:range xsd:anyURI .

rdf:object
    a owl:ObjectProperty .

rdf:predicate
    a owl:ObjectProperty .

rdf:subject
    a owl:ObjectProperty .

rdfs:Resource
    a owl:Class .

prov:Activity
    a owl:Class .

prov:Agent
    a owl:Class .

prov:Entity
    a owl:Class .

prov:generatedAtTime
    a owl:DatatypeProperty ;
    rdfs:domain [
        a owl:Class ;
        owl:unionOf (llont:Algorithm
            llont:Mapping
        )
    ] ;
    rdfs:range xsd:dateTime .

prov:wasAssociatedWith
    a owl:ObjectProperty .

prov:wasDerivedFrom
    a owl:ObjectProperty .

prov:wasGeneratedBy
    a owl:ObjectProperty .

foaf:name
    a owl:DatatypeProperty .

