PyLOD is a Python wrapper for exposing Linked Open Data from public SPARQL-served endpoints.
Project description
PyLOD
PyLOD is a Python wrapper for exposing Linked Open Data from public SPARQL-served endpoints. It acts as an abstraction layer for the retrieval of structured data, such as classes, properties and individuals, without requiring any knowledge of SPARQL.
Getting Started
PyLOD is a minimal module for Python (2.x. and 3.x).
Prerequisites
SPARQLWrapper - SPARQLWrapper is a simple Python wrapper around a SPARQL service to remotelly execute queries.
Installation
-
Manually
- Install SPARQLWrapper.
- Save
PyLOD.py
to your project's directory.
-
From PyPi
pip install PyLOD
Usage
1. Import the PyLOD class and create a PyLOD class object.
from PyLOD import PyLOD
pylod = PyLOD()
2. Provide a dictionary of desired namespaces
my_namespaces={
"dbo": "http://dbpedia.org/ontology/",
"dbp": "http://dbpedia.org/property/"
}
pylod.namespaces.set_namespaces(my_namespaces)
This step is optional, since PyLOD already incorporates a set of known namespaces. To get the list of defined namespaces, use this:
print(pylod.namespaces.get_namespaces())
3. Define a dictionary of SPARQL endpoints to be queried:
my_endpoints={
"DBpedia": "http://dbpedia.org/sparql",
"GeoLinkedData": "http://linkedgeodata.org/sparql"
}
pylod.endpoints.set_endpoints(my_endpoints)
If no endpoints are defined, PyLOD will use a pre-defined set of known endpoints. To get the list of these endpoints, do this:
print(pylod.endpoints.get_endpoints())
4. Use PyLOD's expose
functions to retrieve structured data from the endpoints.
Set the optional argument limit_per_endpoint
to limit the results per endpoint. For example:
# Get entities of type owl:Class
classes = pylod.expose.classes(limit_per_endpoint=100)
# Get the sub-classes of a specific class
sub_classes = pylod.expose.sub_classes(super_class="dbo:Artist")
# Get instances of a specific class
instances = pylod.expose.instances_of_class(cls="dbo:Artist", include_subclasses=True, limit_per_endpoint=50)
# Execute custom SPARQL select query to all endpoints
results = pylod.sparql.execute_select_to_all_endpoints(query="SELECT * WHERE {?s ?p ?o}")
Expose functions:
- classes() - Returns class entities
- sub_classes() - Returns the sub-classes of a given class
- super_classes() - Returns the super-classes of a given class
- equivalent_classes() - Returns the equivalent classes of a given class
- disjoint_classes() - Returns the disjoint classes of a given class
- sub_properties() - Returns the sub-properties of a given property
- super_properties() - Returns the super-properties of a given property
- triples() - Allows the retrieval of triples within the pattern (subject-predicate-object)
- subjects() - Returns the subjects of a given predicate-object pair
- predicates() - Returns the predicates of a given subject-object pair
- objects() - Returns the objects of a given subject-predicate pair
- instances_of_class() - Returns instances of a given class type
- labels() - Returns labels of a given entity, with an optional language argument
SPARQL functions:
- execute_select() - Allows the execution of a custom SPARQL select query to a given endpoint URL
- execute_select_to_all_endpoints() - Allows the execution of a custom SPARQL select query to all endpoints defined in
pylod.endpoints.get_endpoints()
- is_active_endpoint() - Checks if a given endpoint URL is alive and responds to SPARQL queries
Documentation
The official webpage - The Docs
Authors
- Panos Mitzias - Design and development
- Stratos Kontopoulos - Contribution to the design
Powered by
- Centre for Research & Technology Hellas - CERTH
- Multimedia Knowledge & Social Media Analytics Laboratory - MKLab
Applications
PyLOD has been deployed in the following projects:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.