Created
July 11, 2014 15:59
-
-
Save jctoledo/d08752760c6bc1a9e2b2 to your computer and use it in GitHub Desktop.
Void queries - subset
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
function getGraphs() | |
{ | |
global $options; | |
$sparql = "SELECT DISTINCT ?g WHERE {GRAPH ?g {[] a ?o}}"; | |
$r = query($sparql); | |
foreach($r AS $g) { | |
$graphs[] = $g->g->value; | |
} | |
return $graphs; | |
} | |
function addDistinctGraphs() | |
{ | |
global $options; | |
$sparql = "SELECT (COUNT(distinct ?g) AS ?n) {GRAPH ?g {[] ?p ?o} ".$options['filter']."}"; | |
$r = query($sparql); | |
foreach($r AS $c) { | |
$id = getID($c); | |
$label = $c->n->value." unique graphs in ".$options['dataset']; | |
write( | |
// standard | |
Quad($options['uri'], "http://rdfs.org/ns/void#classPartition", $id). | |
QuadLiteral($id, "http://www.w3.org/2000/01/rdf-schema#label", $label, null, "en"). | |
Quad($id, "http://rdfs.org/ns/void#class", "http://www.w3.org/ns/sparql-service-description#Graph"). | |
QuadLiteral($id, "http://rdfs.org/ns/void#entities", $c->n->value, "long"). | |
// enhanced | |
Quad($id, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Graph-Count"). | |
Quad("http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Graph-Count", "http://www.w3.org/2000/01/rdf-schema#subClassOf", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Descriptor") | |
); | |
} | |
} | |
function addTriples() | |
{ | |
global $options; | |
$sparql = "SELECT (COUNT(*) AS ?n) ".$options['from-graph']." {?s ?p ?o}"; | |
$r = query($sparql); | |
$id = getId($r); | |
write( | |
// standard | |
QuadLiteral($options['uri'], "http://rdfs.org/ns/void#triples", $r[0]->n->value, "long"). | |
// enhanced | |
Quad($options['uri'],'http://rdfs.org/ns/void#subset', $id). | |
Quad($id, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Triples"). | |
QuadLiteral($id, "http://www.w3.org/2000/01/rdf-schema#label", $r[0]->n->value." triples in ".$options['dataset_name'], null, "en"). | |
QuadLiteral($id, "http://rdfs.org/ns/void#entities", $r[0]->n->value, "long"). | |
Quad("http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Triples", "http://www.w3.org/2000/01/rdf-schema#subClassOf", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Descriptor") | |
); | |
} | |
function addDistinctEntities() | |
{ | |
global $options; | |
$sparql = "SELECT (COUNT(DISTINCT ?s) AS ?n) ".$options['from-graph']." {?s a []}"; | |
$r = query($sparql); | |
$id = getId($r); | |
write( | |
// standard | |
QuadLiteral($options['uri'], "http://rdfs.org/ns/void#entities", $r[0]->n->value, "long"). | |
// enhanced | |
Quad($options['uri'],'http://rdfs.org/ns/void#subset', $id). | |
Quad($id, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Distinct-Entities"). | |
QuadLiteral($id, "http://www.w3.org/2000/01/rdf-schema#label", $r[0]->n->value." distinct entities in ".$options['dataset_name'], null, "en"). | |
QuadLiteral($id, "http://rdfs.org/ns/void#entities", $r[0]->n->value, "long"). | |
Quad("http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Distinct-Entities", "http://www.w3.org/2000/01/rdf-schema#subClassOf", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Descriptor") | |
); | |
} | |
function addDistinctSubjects() | |
{ | |
global $options; | |
$sparql = "SELECT (COUNT(DISTINCT ?s) AS ?n) ".$options['from-graph']." {?s ?p ?o}"; | |
$r = query($sparql); | |
$id = getId($r); | |
write( | |
// standard | |
QuadLiteral($options['uri'], "http://rdfs.org/ns/void#distinctSubjects", $r[0]->n->value, "long"). | |
// enhanced | |
Quad($options['uri'],'http://rdfs.org/ns/void#subset', $id). | |
Quad($id, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Distinct-Subjects"). | |
QuadLiteral($id, "http://www.w3.org/2000/01/rdf-schema#label", $r[0]->n->value." distinct subjects in ".$options['dataset_name'], null, "en"). | |
QuadLiteral($id, "http://rdfs.org/ns/void#entities", $r[0]->n->value, "long"). | |
Quad("http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Distinct-Subjects", "http://www.w3.org/2000/01/rdf-schema#subClassOf", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Descriptor") | |
); | |
} | |
function addDistinctProperties() | |
{ | |
global $options; | |
$sparql = "SELECT (COUNT(DISTINCT ?p) AS ?n) ".$options['from-graph']." {?s ?p ?o}"; | |
$r = query($sparql); | |
$id = getId($r); | |
write( | |
// standard | |
QuadLiteral($options['uri'], "http://rdfs.org/ns/void#properties", $r[0]->n->value, "long"). | |
// enhanced | |
Quad($options['uri'],'http://rdfs.org/ns/void#subset', $id). | |
Quad($id, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Distinct-Properties"). | |
QuadLiteral($id, "http://www.w3.org/2000/01/rdf-schema#label", $r[0]->n->value." distinct subjects in ".$options['dataset_name'], null, "en"). | |
QuadLiteral($id, "http://rdfs.org/ns/void#entities", $r[0]->n->value, "long"). | |
Quad("http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Distinct-Properties", "http://www.w3.org/2000/01/rdf-schema#subClassOf", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Descriptor") | |
); | |
} | |
function addDistinctObjects() | |
{ | |
global $options; | |
$sparql = "SELECT (COUNT(DISTINCT ?o) AS ?n) ".$options['from-graph']." {?s ?p ?o FILTER(!isLiteral(?o))}"; | |
$r = query($sparql); | |
$id = getId($r); | |
write( | |
// standard | |
QuadLiteral($options['uri'], "http://rdfs.org/ns/void#distinctObjects", $r[0]->n->value, "long"). | |
// enhanced | |
Quad($options['uri'],'http://rdfs.org/ns/void#subset', $id). | |
Quad($id, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Distinct-Objects"). | |
QuadLiteral($id, "http://www.w3.org/2000/01/rdf-schema#label", $r[0]->n->value." distinct objects in ".$options['dataset_name'], null, "en"). | |
QuadLiteral($id, "http://rdfs.org/ns/void#entities", $r[0]->n->value, "long"). | |
Quad("http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Distinct-Objects", "http://www.w3.org/2000/01/rdf-schema#subClassOf", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Descriptor") | |
); | |
} | |
function addDistinctLiterals() | |
{ | |
global $options; | |
$sparql = "SELECT (COUNT(DISTINCT ?o) AS ?n) ".$options['from-graph']." {?s ?p ?o FILTER(isLiteral(?o))}"; | |
$r = query($sparql); | |
foreach($r AS $c) { | |
$id = getID($c); | |
$label = $c->n->value." distinct literals in ".$options['dataset_name']; | |
write( | |
// standard | |
QuadLiteral($options['uri'], "http://rdfs.org/ns/void#distinctLiterals", $r[0]->n->value, "long"). // we made this predicate up | |
Quad($options['uri'], "http://rdfs.org/ns/void#classPartition", $id). | |
QuadLiteral($id, "http://www.w3.org/2000/01/rdf-schema#label", $label, null, "en"). | |
Quad($id, "http://rdfs.org/ns/void#class", "http://www.w3.org/2000/01/rdf-schema#Literal"). | |
QuadLiteral($id, "http://rdfs.org/ns/void#entities", $c->n->value, "long"). | |
// enhanced | |
Quad($options['uri'], "http://rdfs.org/ns/void#subset", $id). | |
Quad($id, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Distinct-Literals"). | |
Quad("http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Distinct-Literal-Count", "http://www.w3.org/2000/01/rdf-schema#subClassOf", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Descriptor") | |
); | |
} | |
} | |
function addDistinctTypes() | |
{ | |
global $options; | |
$sparql = "SELECT (COUNT(DISTINCT ?t) AS ?n) ".$options['from-graph']." {?s ?p ?o . ?o a ?t}"; | |
$r = query($sparql); | |
$id = getId($r); | |
write( | |
QuadLiteral($options['uri'], "http://rdfs.org/ns/void#distinctTypes", $r[0]->n->value, "long"). // we made this up | |
// enhanced | |
Quad($options['uri'],'http://rdfs.org/ns/void#subset', $id). | |
Quad($id, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Distinct-Types"). | |
QuadLiteral($id, "http://www.w3.org/2000/01/rdf-schema#label", $r[0]->n->value." distinct types in ".$options['dataset_name'], null, "en"). | |
QuadLiteral($id, "http://rdfs.org/ns/void#entities", $r[0]->n->value, "long"). | |
Quad("http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Distinct-Types", "http://www.w3.org/2000/01/rdf-schema#subClassOf", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Descriptor") | |
); | |
} | |
function addTypeCount() | |
{ | |
global $options; | |
$sparql = "SELECT ?type ?n ?dn (str(?label) AS ?slabel) | |
".$options['from-graph']." | |
{ | |
{ | |
SELECT ?type (COUNT(DISTINCT ?s) AS ?dn) (COUNT(?s) AS ?n) | |
{?s a ?type} | |
GROUP BY ?type | |
} | |
OPTIONAL {?type rdfs:label ?label} | |
}"; | |
$r = query($sparql); | |
foreach($r AS $c) { | |
$id = getID($c); | |
$label = $c->n->value." ".makeLabel($c,'type','slabel')." in ".$options['dataset_name']; | |
write( | |
Quad($options['uri'], "http://rdfs.org/ns/void#classPartition", $id). | |
Quad($options['uri'], "http://rdfs.org/ns/void#subset", $id). | |
QuadLiteral($id, "http://www.w3.org/2000/01/rdf-schema#label", $label, null, "en"). | |
Quad($id, "http://rdfs.org/ns/void#class", $c->type->value). | |
(isset($c->label)?QuadLiteral($c->type->value, "http://www.w3.org/2000/01/rdf-schema#label", $c->label->value):""). | |
QuadLiteral($id, "http://rdfs.org/ns/void#entities", $c->n->value, "long"). | |
QuadLiteral($id, "http://rdfs.org/ns/void#distinctEntities", $c->dn->value, "long"). // made this up | |
// enhanced | |
Quad($id, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Type-Count"). | |
Quad("http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Type-Count", "http://www.w3.org/2000/01/rdf-schema#subClassOf", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Descriptor") | |
); | |
} | |
} | |
function addPropertyCount() | |
{ | |
global $options; | |
$sparql = "SELECT ?p str(?plabel) ?n | |
".$options['from-graph']." | |
{ | |
{ SELECT ?p (COUNT(?p) AS ?n) | |
{?s ?p ?o} | |
GROUP BY ?p | |
} | |
OPTIONAL {?p rdfs:label ?plabel} | |
} | |
"; | |
$r = query($sparql); | |
foreach($r AS $c) { | |
$id = getID($c); | |
$label = $c->n->value." triples with ".makeLabel($c,'p','plabel')." in ".$options['dataset_name']; | |
write( | |
// standard | |
Quad($options['uri'], "http://rdfs.org/ns/void#propertyPartition", $id). | |
Quad($options['uri'], "http://rdfs.org/ns/void#subset", $id). | |
QuadLiteral($id, "http://www.w3.org/2000/01/rdf-schema#label", $label, null, "en"). | |
Quad($id, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Property-Count"). | |
Quad($id, "http://rdfs.org/ns/void#property", $c->p->value). | |
(isset($c->plabel)? QuadLiteral($c->p->value, "http://www.w3.org/2000/01/rdf-schema#label", $c->plabel->value):''). | |
QuadLiteral($id, "http://rdfs.org/ns/void#triples", $c->n->value, "long"). | |
// enhanced | |
Quad("http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Property-Count", "http://www.w3.org/2000/01/rdf-schema#subClassOf", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Descriptor") | |
); | |
} | |
} | |
function addObjectPropertyCount() | |
{ | |
global $options; | |
$sparql = "SELECT ?p (str(?label) AS ?plabel) (?n AS ?n) (?dn AS ?dn) | |
".$options['from-graph']." | |
{ | |
{ SELECT ?p (COUNT(?o) AS ?n) (COUNT(DISTINCT ?o) AS ?dn) | |
{ ?s ?p ?o FILTER (!isLiteral(?o)) } | |
GROUP BY ?p | |
} | |
OPTIONAL {?p rdfs:label ?label} | |
} | |
"; | |
$r = query($sparql); | |
foreach($r AS $c) { | |
$id = getID($c); | |
$oid = getID($c); | |
$label = $c->n->value." (".$c->dn->value." unique) objects linked by property ".makeLabel($c, 'p', 'plabel')." in ".$options['dataset_name']; | |
write( | |
// standard | |
Quad($options['uri'], "http://rdfs.org/ns/void#subset", $id). | |
QuadLiteral($id, "http://www.w3.org/2000/01/rdf-schema#label", $label, null, "en"). | |
Quad($id, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://rdfs.org/ns/void#LinkSet"). | |
Quad($id, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Object-Property-Count"). | |
Quad($id, "http://rdfs.org/ns/void#linkPredicate", $c->p->value). | |
(isset($c->plabel)? QuadLiteral($c->p->value, "http://www.w3.org/2000/01/rdf-schema#label", $c->plabel->value):''). | |
Quad($id, "http://rdfs.org/ns/void#objectsTarget", $oid). | |
Quad($oid, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Object-Count"). | |
Quad($oid, "http://rdfs.org/ns/void#class", "http://www.w3.org/2000/01/rdf-schema#Resource"). | |
QuadLiteral($oid, "http://rdfs.org/ns/void#entities", $c->n->value, "long"). | |
QuadLiteral($oid, "http://rdfs.org/ns/void#distinctEntities", $c->dn->value, "long"). | |
// enhanced | |
Quad("http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Property-Object-Count", "http://www.w3.org/2000/01/rdf-schema#subClassOf", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Descriptor"). | |
Quad("http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Object-Count", "http://www.w3.org/2000/01/rdf-schema#subClassOf", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Descriptor") | |
); | |
} | |
} | |
function addDatatypePropertyCount() | |
{ | |
global $options; | |
$sparql = "SELECT ?p (str(?label) AS ?plabel) (?n AS ?n) (?dn AS ?dn) | |
".$options['from-graph']." | |
{ | |
{ SELECT ?p (COUNT(?o) AS ?n) (COUNT(DISTINCT ?o) AS ?dn) | |
{?s ?p ?o FILTER (isLiteral(?o))} | |
GROUP BY ?p | |
} | |
OPTIONAL {?p rdfs:label ?label} | |
}"; | |
$r = query($sparql); | |
foreach($r AS $c) { | |
$id = getID($c); | |
$oid = getID($c); | |
$label = $c->n->value." (".$c->dn->value." unique) literals linked to datatype property ".makeLabel($c, 'p', 'plabel')." in ".$options['dataset_name']; | |
write( | |
// standard | |
Quad($options['uri'], "http://rdfs.org/ns/void#subset", $id). | |
QuadLiteral($id, "http://www.w3.org/2000/01/rdf-schema#label", $label, null, "en"). | |
Quad($id, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://rdfs.org/ns/void#LinkSet"). | |
Quad($id, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Datatype-Property-Count"). | |
Quad($id, "http://rdfs.org/ns/void#linkPredicate", $c->p->value). | |
(isset($c->plabel)? QuadLiteral($c->p->value, "http://www.w3.org/2000/01/rdf-schema#label", $c->plabel->value):''). | |
Quad($id, "http://rdfs.org/ns/void#objectsTarget", $oid). | |
Quad($oid, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Literal-Count"). | |
Quad($oid, "http://rdfs.org/ns/void#class", "http://www.w3.org/2000/01/rdf-schema#Literal"). | |
QuadLiteral($oid, "http://rdfs.org/ns/void#entities", $c->n->value, "long"). | |
QuadLiteral($oid, "http://rdfs.org/ns/void#distinctEntities", $c->dn->value, "long"). | |
// enhanced | |
Quad("http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Datatype-Property-Count", "http://www.w3.org/2000/01/rdf-schema#subClassOf", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Descriptor"). | |
Quad("http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Datatype-Literal-Count", "http://www.w3.org/2000/01/rdf-schema#subClassOf", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Descriptor") | |
); | |
} | |
} | |
function addPropertyObjectTypeCount() | |
{ | |
global $options; | |
$sparql = "SELECT ?p (str(?plabel) AS ?plabel) ?otype (str(?otype_label) AS ?otype_label) (?n AS ?n) (?dn AS ?dn) | |
".$options['from-graph']." { | |
{ | |
SELECT ?p ?otype (COUNT(?o) AS ?n) (COUNT(DISTINCT ?o) AS ?dn) | |
{ | |
?s ?p ?o . | |
?o a ?otype . | |
} | |
GROUP BY ?p ?otype | |
} | |
OPTIONAL {?p rdfs:label ?plabel} | |
OPTIONAL {?otype rdfs:label ?otype_label} | |
}"; | |
$r = query($sparql); | |
foreach($r AS $c) { | |
$id = getID($c); | |
$oid = getID($c); | |
$label = $c->n->value." (".$c->dn->value." unique) objects of type ".makeLabel($c, 'otype', 'otype_label'). | |
" linked by ".makeLabel($c,'p','plabel')." in ".$options['dataset_name']; | |
write( | |
// enhanced | |
Quad($options['uri'], "http://rdfs.org/ns/void#subset", $id). | |
QuadLiteral($id, "http://www.w3.org/2000/01/rdf-schema#label", $label, null, "en"). | |
Quad($id, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://rdfs.org/ns/void#LinkSet"). | |
Quad($id, "http://rdfs.org/ns/void#linkPredicate", $c->p->value). | |
(isset($c->plabel)? QuadLiteral($c->p->value, "http://www.w3.org/2000/01/rdf-schema#label", $c->plabel->value):''). | |
Quad($id, "http://rdfs.org/ns/void#objectsTarget", $oid). | |
Quad($oid, "http://rdfs.org/ns/void#class", $c->otype->value). | |
(isset($c->otype_label)? QuadLiteral($c->otype->value, "http://www.w3.org/2000/01/rdf-schema#label", $c->otype_label->value):''). | |
QuadLiteral($oid, "http://rdfs.org/ns/void#entities", $c->n->value, "long"). | |
QuadLiteral($oid, "http://rdfs.org/ns/void#distinctEntities", $c->dn->value, "long"). | |
// enhanced | |
Quad($id, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Property-Object-Type-Count"). | |
Quad($oid, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Object-Count"). | |
Quad("http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Object-Type-Count", "http://www.w3.org/2000/01/rdf-schema#subClassOf", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Descriptor"). | |
Quad("http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Object-Count", "http://www.w3.org/2000/01/rdf-schema#subClassOf", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Descriptor") | |
); | |
} | |
} | |
function addSubjectPropertyObjectCount() | |
{ | |
global $options; | |
$sparql = "SELECT ?p (str(?plabel) AS ?plabel) (?sn AS ?sn) (?dsn AS ?dsn) (?on AS ?on) (?don AS ?don) | |
".$options['from-graph']." { | |
{ | |
SELECT ?p (COUNT(?s) AS ?sn) (COUNT(DISTINCT ?s) AS ?dsn) (COUNT(?o) AS ?on) (COUNT(DISTINCT ?o) AS ?don) | |
{ | |
?s ?p ?o . | |
} | |
GROUP BY ?p | |
} | |
OPTIONAL {?p rdfs:label ?plabel} | |
}"; | |
$r = query($sparql); | |
foreach($r AS $c) { | |
$id = getID($c); | |
$sid = getID($c); | |
$oid = getID($c); | |
$label = $c->sn->value." (".$c->dsn->value." unique) subjects linked by ".makeLabel($c,'p','plabel')." to ". | |
$c->on->value." (".$c->don->value." unique) objects in ".$options['dataset_name']; | |
write( | |
// enhanced | |
Quad($options['uri'], "http://rdfs.org/ns/void#subset", $id). | |
QuadLiteral($id, "http://www.w3.org/2000/01/rdf-schema#label", $label, null, "en"). | |
Quad($id, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://rdfs.org/ns/void#LinkSet"). | |
Quad($id, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Subject-Property-Object-Count"). | |
Quad("http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Subject-Property-Object-Count", "http://www.w3.org/2000/01/rdf-schema#subClassOf", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Descriptor"). | |
Quad($id, "http://rdfs.org/ns/void#linkPredicate", $c->p->value). | |
(isset($c->plabel)? QuadLiteral($c->p->value, "http://www.w3.org/2000/01/rdf-schema#label", $c->plabel->value):''). | |
Quad($id, "http://rdfs.org/ns/void#subjectsTarget", $sid). | |
Quad($sid, "http://rdfs.org/ns/void#class", "http://www.w3.org/2000/01/rdf-schema#Resource"). | |
QuadLiteral($sid, "http://rdfs.org/ns/void#entities", $c->sn->value, "long"). | |
QuadLiteral($sid, "http://rdfs.org/ns/void#distinctEntities", $c->dsn->value, "long"). | |
Quad($sid, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Subject-Count"). | |
Quad("http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Subject-Count", "http://www.w3.org/2000/01/rdf-schema#subClassOf", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Descriptor"). | |
Quad($id, "http://rdfs.org/ns/void#objectsTarget", $oid). | |
Quad($oid, "http://rdfs.org/ns/void#class", "http://www.w3.org/2000/01/rdf-schema#Resource"). | |
QuadLiteral($oid, "http://rdfs.org/ns/void#entities", $c->on->value, "long"). | |
QuadLiteral($oid, "http://rdfs.org/ns/void#distinctEntities", $c->don->value, "long"). | |
Quad($oid, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Object-Count"). | |
Quad("http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Object-Count", "http://www.w3.org/2000/01/rdf-schema#subClassOf", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Descriptor") | |
); | |
} | |
} | |
function addTypePropertyTypeCount() | |
{ | |
global $options; | |
$sparql = "SELECT | |
?stype (str(?stype_label) AS ?stype_label) (?sn AS ?sn) (?dsn AS ?dsn) | |
?p (str(?plabel) AS ?plabel) | |
?otype (str(?otype_label) AS ?otype_label) (?on AS ?on) (?don AS ?don) | |
".$options['from-graph']." | |
{ | |
{ | |
SELECT ?stype ?p ?otype (COUNT(?s) AS ?sn) (COUNT(DISTINCT ?s) AS ?dsn) (COUNT(?o) AS ?on) (COUNT(DISTINCT ?o) AS ?don) | |
{ | |
?s ?p ?o . | |
?s a ?stype . | |
?o a ?otype . | |
} | |
GROUP BY ?p ?stype ?otype | |
} | |
OPTIONAL {?stype rdfs:label ?stype_label} | |
OPTIONAL {?p rdfs:label ?plabel} | |
OPTIONAL {?otype rdfs:label ?otype_label} | |
} | |
"; | |
$r = query($sparql); | |
foreach($r AS $c) { | |
$id = getID($c); | |
$sid = getID($c); | |
$oid = getID($c); | |
$label = $c->sn->value." (".$c->dsn->value." unique) ".makeLabel($c,'stype','stype_label')." linked by property ".makeLabel($c, 'p', 'plabel') | |
." to ".$c->on->value." (".$c->don->value." unique) ".makeLabel($c,'otype','otype_label')." in ".$options['dataset_name']; | |
write( | |
Quad($options['uri'], "http://rdfs.org/ns/void#subset", $id). | |
Quad($id, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://rdfs.org/ns/void#LinkSet"). | |
Quad($id, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Type-Property-Type-Count"). | |
QuadLiteral($id, "http://www.w3.org/2000/01/rdf-schema#label", $label, null, "en"). | |
Quad($id, "http://rdfs.org/ns/void#linkPredicate", $c->p->value). | |
(isset($c->plabel)? QuadLiteral($c->p->value, "http://www.w3.org/2000/01/rdf-schema#label", $c->plabel->value):''). | |
Quad($id, "http://rdfs.org/ns/void#subjectsTarget", $sid). | |
Quad($sid, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Subject-Count"). | |
Quad($sid, "http://rdfs.org/ns/void#class", $c->stype->value). | |
(isset($c->stype_label)? QuadLiteral($c->stype->value, "http://www.w3.org/2000/01/rdf-schema#label", $c->stype_label->value):''). | |
QuadLiteral($sid, "http://rdfs.org/ns/void#entities", $c->sn->value, "long"). | |
QuadLiteral($sid, "http://rdfs.org/ns/void#distinctEntities", $c->dsn->value, "long"). | |
Quad($id, "http://rdfs.org/ns/void#objectsTarget", $oid). | |
Quad($oid, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Object-Count"). | |
Quad($oid, "http://rdfs.org/ns/void#class", $c->otype->value). | |
(isset($c->otype_label)? QuadLiteral($c->otype->value, "http://www.w3.org/2000/01/rdf-schema#label", $c->otype_label->value):''). | |
QuadLiteral($oid, "http://rdfs.org/ns/void#entities", $c->on->value, "long"). | |
QuadLiteral($oid, "http://rdfs.org/ns/void#distinctEntities", $c->don->value, "long"). | |
Quad("http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Type-Property-Type-Count", "http://www.w3.org/2000/01/rdf-schema#subClassOf", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Descriptor"). | |
Quad("http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Subject-Count", "http://www.w3.org/2000/01/rdf-schema#subClassOf", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Descriptor"). | |
Quad("http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Object-Count", "http://www.w3.org/2000/01/rdf-schema#subClassOf", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Descriptor") | |
); | |
} | |
} | |
function addDatasetPropertyDatasetCount() | |
{ | |
global $options; | |
$sparql = "SELECT DISTINCT ?p ?stype ?otype (COUNT(?s) AS ?n) | |
".$options['from-graph']." | |
{ | |
?s ?p ?o . | |
?s a ?stype . | |
?o a ?otype . | |
FILTER regex (?stype, \"vocabulary:Resource\") | |
FILTER regex (?otype, \"vocabulary:Resource\") | |
FILTER (?stype != ?otype) | |
}"; | |
$r = query($sparql); | |
foreach($r AS $c) { | |
$id = getID($c); | |
preg_match("/http:\/\/bio2rdf.org\/([^_]+)_vocabulary/",$c->stype->value,$m1); | |
preg_match("/http:\/\/bio2rdf.org\/([^_]+)_vocabulary/",$c->otype->value,$m2); | |
if(isset($m1[1]) and isset($m2[1])) { | |
$d1 = $m1[1]; | |
$d2 = $m2[1]; | |
$r = $c->p->value; | |
$label = "$d1 connected to $d2 through ".$c->n->value." <$r> in ".$options['dataset_name']; | |
write( | |
Quad($options['uri'], "http://rdfs.org/ns/void#subset", $id). | |
Quad($id, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://rdfs.org/ns/void#LinkSet"). | |
Quad($id, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Dataset-Property-Dataset-Count"). | |
QuadLiteral($id, "http://www.w3.org/2000/01/rdf-schema#label", $label, null, "en"). | |
Quad($id, "http://rdfs.org/ns/void#linkPredicate", $c->p->value). | |
Quad($id, "http://rdfs.org/ns/void#subjectsTarget", $c->stype->value). | |
Quad($id, "http://rdfs.org/ns/void#objectsTarget", $c->otype->value). | |
QuadLiteral($id, "http://rdfs.org/ns/void#triples", $c->n->value, "long"). | |
Quad("http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Dataset-Property-Dataset-Count", "http://www.w3.org/2000/01/rdf-schema#subClassOf", "http://bio2rdf.org/bio2rdf.dataset_vocabulary:Dataset-Descriptor") | |
); | |
} | |
} | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment