Extended Vocabulary of Interlinked Datasets (VoIDext)
The Extension of the Vocabulary of Interlinked Datasets (VoID) RDF Schema that includes the concept of virtual links. This extension enhances interoperability among heterogeneous and distributed RDF data sets by bridging them through explicitly defined virtual links.
Digital Enterprise Research Institute, NUI Galway
Department of Zoology, University of Oxford
A set of RDF triples that are published, maintained or aggregated by a single provider.
A collection of RDF links between two void:Datasets.
A technical feature of a void:Dataset, such as a supported RDF serialization format.
A web resource whose foaf:primaryTopic or foaf:topics include void:Datasets.
This property assings the performance of the virtual link set, for example, in terms of recall and precision. The values to be assigned (property range) are represented with the ontology MEX Performance Ontology.
has performance measure
One of the two datasets linked by the Linkset or the Shared instance set.
The void:target property domain was modified in voidext schema to be the union of the classes: void:Linkset, and voidext:SharedInstanceSet instead of only the void:Linkset class from the original VoID vocabulary.
It specifies the RDF predicate in a given dataset that relates to another dataset. In other words, the link predicate is the RDF property in the predicate position of an RDF triple that links two datasets.
A vocabulary that is used in the dataset.
The dataset describing the subjects of triples contained in the Linkset.
The dataset describing the objects of the triples contained in the Linkset.
An RDF dump, partial or complete, of a void:Dataset.
Defines a simple URI look-up protocol for accessing a dataset.
Defines a regular expression pattern matching URIs in the dataset.
The rdfs:Class that is the rdf:type of all entities in a class-based partition.
The total number of distinct classes in a void:Dataset. In other words, the number of distinct resources occuring as objects of rdf:type triples in the dataset.
A subset of a void:Dataset that contains only the entities of a certain rdfs:Class.
The total number of distinct objects in a void:Dataset. In other words, the number of distinct resources that occur in the object position of triples in the dataset. Literals are included in this count.
The total number of distinct subjects in a void:Dataset. In other words, the number of distinct resources that occur in the subject position of triples in the dataset.
The total number of documents, for datasets that are published as a set of individual documents, such as RDF/XML documents or RDFa-annotated web pages. Non-RDF documents, such as web pages in HTML or images, are usually not included in this count. This property is intended for datasets where the total number of triples or entities is hard to determine. void:triples or void:entities should be preferred where practical.
The total number of entities that are described in a void:Dataset.
Points to the void:Dataset that a document is a part of.
An OpenSearch description document for a free-text search service over a void:Dataset.
The total number of distinct properties in a void:Dataset. In other words, the number of distinct resources that occur in the predicate position of triples in the dataset.
The rdf:Property that is the predicate of all triples in a property-based partition.
A subset of a void:Dataset that contains only the triples of a certain rdf:Property.
A top concept or entry point for a void:Dataset that is structured in a tree-like fashion. All resources in a dataset can be reached by following links from its root resources in a small number of steps.
The total number of triples contained in a void:Dataset.
A URI that is a common string prefix of all the entity URIs in a void:Dataset.
A set of virtual links between two datasets. A virtual link is a connection between resources such as literals and instances with some commonality. Each of these resources is from a different RDF dataset. A resource mapping can be also considered when defining common resources between datasets. For example, the datasets uses different prefix namespaces for similar instances in a given domain scope. A virtual link can be interpreted as an intersection data point between two datasets. In addition, a virtual link is not concretely stored. The link may be physically established during a federated query execution, for example. This class must only have instances of its subclasses. It is recommendable to comment (rdfs:comment) the scope of the virtual link set.
Virtual link set
A simple link set must be a linkset that does not target another linkset (i.e. it has exactly one link predicate) or a set with exactly the same shared instances of the same type (i.e. class) in both datasets. The instances of this class must be also instances of either void:Linkset or voidext:SharedInstanceSet.
Simple link set
prefix void: <http://rdfs.org/ns/void#> prefix voidext:<http://purl.org/query/voidext#> prefix dcterms: <http://purl.org/dc/terms/> SELECT distinct ?links ?source ?predicate_from_endpoint ?subj_from ?subj_type ?predicate ?obj_type ?obj_from ?resourceMapping { ###if we want to specify the target datasets that contain one of the resources ###related with a virtual link. #values(?dataset_link_subj){ (bioquery:OMA) } #values(?dataset_link_obj){ (bioquery:UNIPROT) } ?links a void:Linkset. { ?links void:subjectsTarget ?dataset_link_subj . ?links void:objectsTarget ?dataset_link_obj. } UNION { ?links void:target ?dataset_link_subj. ?links void:target ?dataset_link_obj .} ?links void:linkPredicate ?predicate; voidext:isSubsetOf ?source_db. ?dataset_link_subj void:sparqlEndpoint ?subj_from. ?dataset_link_obj void:sparqlEndpoint ?obj_from. ?source_db dcterms:title ?source; void:sparqlEndpoint ?predicate_from_endpoint. optional {?links voidext:linkPredicateRange ?obj_type}. optional {?links voidext:linkPredicateDomain ?subj_type. } optional{ ?links voidext:resourceMapping ?resourceMapping} filter not exists { ?complexLink voidext:intersectAt ?links.} filter ( ?dataset_link_subj != ?dataset_link_obj ) } order by ?links
prefix void: <http://rdfs.org/ns/void#> prefix voidext:<http://purl.org/query/voidext#> prefix dcterms: <http://purl.org/dc/terms/> SELECT distinct ?links ?dataset1_name ?dataset2_name ?sharedType ?dataset1_endpoint ?dataset2_endpoint { #values(?dataset1){ (bioquery:BGEE) } #values(?dataset2){ (bioquery:OMA) } ?links a voidext:SharedInstanceSet. ?links void:target ?dataset1. ?links void:target ?dataset2. ?links voidext:sharedInstanceType ?sharedType. ?dataset1 dcterms:title ?dataset1_name; void:sparqlEndpoint ?dataset1_endpoint. ?dataset2 dcterms:title ?dataset2_name; void:sparqlEndpoint ?dataset2_endpoint. filter not exists { ?complexLink voidext:intersectAt ?links .} filter(?dataset1 != ?dataset2) } order by ?links
It is a complex virtual link set. A complex link set is composed of exactly two link sets xor two shared instance sets where xor is the exclusive or. For example, two link sets that intersects at some graph node (e.g. the object nodes of link predicates).
Complex link set
prefix void: <http://rdfs.org/ns/void#> prefix voidext:<http://purl.org/query/voidext#> prefix dcterms: <http://purl.org/dc/terms/> SELECT distinct ?links ?source_dataset1_name ?target_dataset2_name ?predicate ?intersection_type ?subj_type ?obj_type ?source_endpoint ?target_endpoint ?resourceMapping { #values(?dataset1){ (bioquery:EBI_ORDO) } #values(?dataset2){ (bioquery:DRUGBANK) } ?links a voidext:ComplexLinkSet. ?links voidext:intersectAt ?set2; voidext:intersectionType/rdfs:label ?intersection_type. ?set2 voidext:isSubsetOf ?target_db. ?target_db dcterms:title ?target_dataset2_name; void:sparqlEndpoint ?target_endpoint. ?set2 void:linkPredicate ?predicate2 . ?links voidext:intersectAt ?set1. ?set1 void:linkPredicate ?predicate . ?set1 voidext:isSubsetOf ?source_db . ?source_db dcterms:title ?source_dataset1_name; void:sparqlEndpoint ?source_endpoint. optional{ ?set1 voidext:linkPredicateDomain ?subj_type} optional{ ?set1 voidext:linkPredicateRange ?obj_type.} optional{ ?links voidext:recommendedMapping ?set1. ?set1 voidext:resourceMapping ?resourceMapping} filter(?source_db != ?target_db) } order by ?links
prefix void: <http://rdfs.org/ns/void#> prefix voidext:<http://purl.org/query/voidext#> prefix dcterms: <http://purl.org/dc/terms/> SELECT distinct ?links ?source_dataset1_name ?target_dataset2_name ?sharedType ?resourceMapping ?source_endpoint ?target_endpoint{ #values(?source_db){ (bioquery:EBI) } #values(?target_db){ (bioquery:UNIPROT) } ?links a voidext:ComplexLinkSet. ?links voidext:intersectAt ?set1; voidext:intersectAt ?set2. ?set1 voidext:isSubsetOf ?target_db. ?target_db dcterms:title ?target_dataset2_name; void:sparqlEndpoint ?target_endpoint. ?set2 voidext:sharedInstanceType ?sharedType . ?set2 voidext:isSubsetOf ?source_db . ?source_db dcterms:title ?source_dataset1_name; void:sparqlEndpoint ?source_endpoint. optional{ ?links voidext:recommendedMapping ?set2. ?set2 voidext:resourceMapping ?resourceMapping} filter(?target_db != ?source_db) } order by ?links
A shared instance set between exactly two datasets. For example, two datasets that contain the same OWL/RDFS class instances.
Shared instance set
The possible intersection types between the RDF graph nodes in different void:Dataset(s) (i.e. either the subject or the object node of a link predicate). The instances of this class are exclusively voidext:OBJECT_OBJECT, voidext:OBJECT_SUBJECT, and voidext:SUBJECT_SUBJECT.
Linkset intersection
query for shared instance set
This property must only assign one standard SPARQL query per category (i.e. subclass) of VirtualLinkSet to retrieve the formal definition of shared instance set (i.e. query projection) as presented in the voidext specification.
query for linkset
This property must only assign one standard SPARQL query per category (i.e. subclass) of VirtualLinkSet to retrieve the formal definition of linkset (i.e. query projection) as presented in the voidext specification.
link predicate domain
The link predicate's subject type (i.e. class), if any. Moreover, in the case of a void:Linkset that is classified as a simple link set (voidext:SimpleLinkSet), if the two datasets are linked through the link predicate's subject then the link predicate domain must be specified. Indeed, this subject matches a second resource in an external dataset. Therefore, the type of this second resource is asserted as the link predicate domain.
The link predicate's object type (i.e. class), if any. Moreover, in the case of a void:Linkset that is not classified as a simple link set, if the two datasets are linked through the link predicate's object then the link predicate range must be specified. Indeed, this object matches a second resource in an external dataset. Therefore, the type of this second resource is asserted as the link predicate range.
link predicate range
This property is used to assign exactly either two shared instance sets (voidext:SharedInstanceSet) or two link sets (void:Linkset) to compose a complex link set (voidext:ComplexLinkSet). For each void:Linkset, either the subject or the object node of its link predicate intersects an RDF node of the link predicate from the other link set. In other words, the subject xor the object of a link predicate matches the subject xor the object of the other link predicate, where xor is the exclusive or. These link predicates must be from different datasets.
intersects at
This property assigns the intersection type of two RDF triples in different datasets (void:Dataset). In other words, if the intersection occurs at the subject xor the object node of a link predicate.
intersection type
This property assings the type (i.e. class) of the shared instances from a given void:Dataset. Shared instances implies equivalent or similar instance IRIs that belong to different datasets.
shared instance type
This property should be used to explicitly assert that a void:Dataset supports SPARQL 1.1. federated queries to be able to access the dataset with the SERVICE keyword and perform federated join queries.
supports SPARQL 1.1 federated query
The preprocessing of a resource (i.e. IRI or literal) in a source void:Dataset in order to match another resource in the target void:Dataset. A resource is either the subject or the object of an RDF triple. The resource preprocessing (i.e. the resource mapping) must be defined with the SPARQL language by mainly using SPARQL built-ins for assignments (e.g. BIND), and expression and testing values (e.g. IF and FILTER). BIND is used to assign the output of a function.
resource mapped with
Example of a value assigned with this property is the following "?objectsTarget a <urn:Example>. BIND(IF(contains(?objectsTarget, "Example:" ), IRI(concat("http://example.org/uniprot:",strafter(?objectsTarget,"Example:"))), ?objectsTargetConverted) as ?converted_object) FILTER(BOUND(?obj_converted))". This will convert strings that contains "Example:" into IRIs defined in http://example.org/ namespace.
If more than one mapping is defined in the different void:Linkset(s) that are part of a voidext:ComplexLinkSet, one of the resource mappings may be recommended by asserting this property. The recommended mapping is the one stated to the void:Linkset assigned as the value of this property. If no mapping is explicitly recommended, solely one of them must arbitrarily be applied to establish a virtual link. At most one mapping function can be defined either per linkset or per shared instance set.
recommended mapping from
Object-object intersection
The intersection between two void:Dataset(s) (i.e. knowledge graphs) occurs at the object node in both datasets.
Subject-object intersection
The intersection between two void:Dataset(s) (i.e. knowledge graphs) occurs at the object node of one data set (graph) and the subject node of another data set (graph).
Subject-subject intersection
The intersection between two void:Dataset(s) (i.e. knowledge graphs) occurs at the subject node in both datasets.