How to get part of a jena OntModel? - sparql

I‘m working on a project, which the ontology is very large and can not be separated into multi files. I need to analyse the ontology and show part of on a web page, but I am not sure how to get part of the ontology. I've saved the ontology into a OntModel class,should I use jena API or SPARQL to query part of it? It would be the best if the sub ontology is also can convert to OntModel class. Could you please give me an example please? Please help me,any answer would be appreciated!Thank you!

Related

How to retrieve bioportal mappings using SPARQL

Is there a way to query the bioportal mappings?
Say I have <http://purl.bioontology.org/ontology/UATC/V10BX02> in my graph, and I would like to pull additional information from MeSH. I'm not having much luck with the API, which is likely user error.
I found this website which has examples on how to query mappings between ontologies.
http://sparql.bioontology.org/examples

Generating SPARQL Query from SHACL

I have a specific situation where I need to automatically generate SPARQL queries based on the SHACL schemas of the incoming data. I wonder if Jena or any other semantic tool/library can help do that?
I saw something on the Jena code based but nothing official from the documentation.
Before I start trying to develop my own solution, I wonder if there is already some existing libraries on that or else initiative going on.

Mount a SPARQL endpoint for use with custom ontologies and triple RDFs

I've been trying to figure out how to mount a SPARQL endpoint for a couple of days, but as much as I read I can not understand it.
Comment my intention: I have an open data server mounted on CKAN and my goal is to be able to use SPARQL queries on the data. I know I could not do it directly on the datasets themselves, and I would have to define my own OWL and convert the data I want to use from CSV format (which is the format they are currently in) to RDF triple format (to be used as linked data).
The idea was to first test with the metadata of the repositories that can be generated automatically with the extension ckanext-dcat, but is that I really do not find where to start. I've searched for information on how to install a Virtuoso server for the SPARQL, but the information I've found leaves a lot to be desired, not to say that I can find nowhere to explain how I could actually introduce my own OWLs and RDFs into Virtuoso itself.
Someone who can lend me a hand to know how to start? Thank you
I'm a little confused. Maybe this is two or more questions?
1. How to convert tabular data, like CSV, into the RDF semantic format?
This can be done with an R2RML approach. Karma is a great GUI for that purpose. Like you say, a conversion like that can really be improved with an underlying OWL ontology. But it can be done without creating a custom ontology, too.
I have elaborated on this in the answer to another question.
2. Now that I have some RDF formatted data, how can I expose it with a SPARQL endpoint?
Virtuoso is a reasonable choice. There are multiple ways to deploy it and multiple ways to load the data, and therefore LOTs of tutorial on the subject. Here's one good one, from DBpedia.
If you'd like a simpler path to starting an RDF triplestore with a SPARQL endpoint, Stardog and Blazegraph are available as JARs, and RDF4J can easily be deployed within a container like Tomcat.
All provide web-based graphical interfaces for loading data and running queries, in addition to SPARQL REST endpoints. At least Stardog also provides command-line tools for bulk loading.

Linking my own ontology with DBPedia's populated ontology

I have this assignment where I have created an rdfs ontology with artists, their songs, their genres, etc using Protégé and populated it with some data. I am now supposed to connect my ontology and it's data with DBPedia's, so that I can SPARQL for my artists' birthdate. I have successfully imported http://dbpedia.org/ontology/ and http://dbpedia.org/property/ into protégé, but I can't find a way to import the data (http://dbpedia.org/resource/).
Can anyone point me in the right direction?
DBpedia datasets are stored and available for download here (http://wiki.dbpedia.org/Downloads2015-04#h96554-1) but Protégé isn't going to perform well (or at all) when you load a dataset of this size into it.
You may be better downloading various entities by hand such as - http://dbpedia.org/data/Blink-182.ntriples and then loading into Protégé. You can go to any DBPedia page. E.G. http://dbpedia.org/page/Ras_Barker and find download links at the bottom.

Manipulating RDF in Jena

currently, I found out that I can query using model (Model) syntax in Jena in a rdf after loading the model from a file, it gives me same output if I apply a sparql query. So, I want to know that , is it a good way to that without sparql? Though I have tested it with a small rdf file. I also want to know if I use Virtuoso can i manipulate using model syntax without sparql?
Thanks in Advance.
I'm not quite sure if I understand your question. If I can paraphrase, I think you're asking:
Is it OK to query and manipulate RDF data using the Jena Model API instead of using
SPARQL? Does it make a difference if the back-end store is Virtuoso?
Assuming that's the right re-phrasing of the question, then the first part is definitively yes: you can manipulate RDF data through the Model and OntModel APIs. In fact, I would say that's what the majority of Jena users do, particularly for small queries or updates. I find personally that going direct to the API is more succinct up to a certain point of complexity; after that, my code is clearer and more concise if I express the query in SPARQL. Obviously circumstances will have an effect: if you're working with a mixture of local stores and remote SPARQL endpoints (for which sending a query string is your only option) then you may find the consistency of always using SPARQL makes your code clearer.
Regarding Virtuoso, I don't have any direct experience to offer. As far as I know, the Virtuoso Jena Provider fully implements the features of the Model API using a Virtuoso store as the storage layer. Whether the direct API or using SPARQL queries gives you a performance advantage is something you should measure by benchmark with your data and your typical query patterns.