|
Hello Bruce; It may be a good idea to take a look
at the Getting Started Guide for TopBraid Composer. The first few
chapters will give you some good guidance on basic operations with
files. You can find the guide, and other guides and tutorials, at
http://www.topquadrant.com/products/support.html. The basic principle is that data is brought into memory for computation, just as with any other application I can think of. You can't run a query on a remote piece of data. You could run a query against a service that wraps a piece of data. That's what a SPARQL Endpoint does. owl:imports just makes it easy to specify what data needs to be brought into memory as part of the definition of a file. If fileA imports fileB, e.g. {<fileA> owl:imports <fileB>}, then when fileA is opened, Composer will use the base URI of fileB to open it and merge the data in the in-memory storage. fileB could be a file on the Web. That means when opening fileA, Composer will use the base URI as a URL, download the data, and read it into memory. Depending on network latency and file size, this could take a while. If fileB changes frequently, you may need to keep it that way (i.e. leave the file on the Web). If it changes infrequently, then it may be best to create a copy and place it in Composer's workspace. This reduces the amount of time to open the file. In the case of FOAF, they use a versioning scheme so files are immutable - a change to the file will result in a new file name. Hence downloading to use a specific version is the anticipated use. Regardless of how the file is stored, loading into Composer involves converting the triples into a data structure (Jena RDF). The data structure implements an in-memory graph structure that optimizes access to triples. This in-memory model is what is used to display Composer's UI, fetch data, apply SPARQL queries, run inferences, etc. Merging an imported file is basically reading the file into this model. Namespaces have little to do with any of this - it's a separate concept taken from XML. A namespace is the syntactic part of the URL before the name. So for http://example.org/mydata#myitem, the namespace is "http://example.org/mydata#". That's it. The namespace can appear in any file to define a fully qualified URI (namespace + local name). It's a "space" in that one can say that there are a set of entities defined in the "space" "http://example.org/mydata#", one of which is "myitem" in this example. So, back to your specific questions. To use FOAF in Composer, it has to be downloaded and read into memory. Then you can apply queries, etc. <<if I import an RDF file into another file, that is rdffiel1.rdf into rdffile2.rdf and then save the second file, the next time I open this rdffile2.rdf should this file have saved the imported graph within the same file?>> No, the imported graph will not be saved *in* rdffile2.rdf. If you specify an owl:imports of rdffile1.rdf into rdffile2.rdf, i.e. {rdffile2.rdf owl:imports rdffile1.rdf}, the data from rdffiel1.rdf stays in rdffile1.rdf. What the imports statement means is "Whenever rdffile2.rdf is opened (read into memory), also open rdffile1.rdf and merge into the same in-memory model." You can then perform browsing and query operations on the files as a single model. Be clear about separating the concepts of namespaces and imports. Imports are basically an "include statement". Namespace is a syntactic piece of the URI. Hopefully that helps some. I'd really encourage taking a look at the Getting Started Guide and/or looking into our training offerings. -- Scott Scott Henninger, PhD Platform Product Manager, Senior Product and Training Engineer TopQuadrant, Inc., tel: 402-429-3751 / fax: 703 991-8192 / main: 703 299-9330 Training: Introduction to Semantic Web Technologies - March. 5-8, 2012, Washington, DC TopBraid Advanced Products Training - April 9-12, 2012, Washington, DC Introduction to Semantic Web Technologies - April 24-26, 2012, New York, NY TQ Blog: Voyages of the Semantic Enterprise On 2/3/12 7:05 PM, Bruce Whealton wrote: --I was a bit unclear about this concept. Let's assume that TBC didn't have a copy of FOAF included with the download. So, is it possible to run SPARQL queries against FOAF Classes and Properties using just the namespace for FOAF on the web? Or does TBC need to import the FOAF ontology into the open file? That leads to my second question, if I had an ontology file and a data file, as discussed in the Learning Sparql book, if I was going to query against the data using TBC, do I need to import the ontology into the data file? Or will TBC support SPARQL queries against files that are in the same project?Lastly, but relatedly, if I import an RDF file into another file, that is rdffiel1.rdf into rdffile2.rdf and then save the second file, the next time I open this rdffile2.rdf should this file have saved the imported graph within the same file? That doesn't seem to be the case for me. I have several namespaces that are defined in my foaf.rdf file. At one point I must have let TBC import the external namespaces because I have import statements, in the file. But each time I open that file, it takes a long time because it has to go get the files off the web. Thanks, Bruce You received this message because you are subscribed to the Google Group "TopBraid Suite Users", the topics of which include Enterprise Vocabulary Network (EVN), TopBraid Composer, TopBraid Live, TopBraid Ensemble, SPARQLMotion and SPIN. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/topbraid-users?hl=en |
- [topbraid-users] Referring to Classes, Properties, using n... Bruce Whealton
- Re: [topbraid-users] Referring to Classes, Properties... Scott Henninger
- [topbraid-users] Re: Referring to Classes, Proper... Bruce Whealton
- Re: [topbraid-users] Re: Referring to Classes... Scott Henninger
- [topbraid-users] Re: Referring to Classes... Bruce Whealton
- Re: [topbraid-users] Re: Referring t... Scott Henninger
