Here's a pastebin link for anyone wanting nicer formatting: http://pastebin.com/MLyq5vJK
On Sat, Apr 13, 2013 at 4:48 PM, Joshua TAYLOR <[email protected]> wrote: > The Model interface extends the PrefixMapping interface, so you've got > the functionality you need. Here's some sample code and output. Sorry > about indentation; Google's new compose doesn't seem to handle it > very well. > > import java.io.File; > import java.io.FileInputStream; > import java.io.FileNotFoundException; > import java.util.Map; > > import com.hp.hpl.jena.rdf.model.Model; > import com.hp.hpl.jena.rdf.model.ModelFactory; > > public class Prefixes { > public static void main( String[] args ) throws FileNotFoundException { > Model model = ModelFactory.createDefaultModel(); > FileInputStream foaf = new FileInputStream( new File( > "/home/taylorj/Downloads/foaf.rdf" )); > model.read( foaf, null ); > // Null because "http://xmlns.com/foaf/0.1/Person" isn't a prefix in the model > System.out.println( "shortform: " + model.shortForm( > "http://xmlns.com/foaf/0.1/Person" ) ); > // This isn't null, since it corresponds to the foaf: prefix > System.out.println( "shortform: " + model.shortForm( > "http://xmlns.com/foaf/0.1/" ) ); > // Since this starts with a something that is a prefix, it has a short form > System.out.println( "shortform: " + model.shortForm( > "http://xmlns.com/foaf/0.1/Person" ) ); > // It has a qname too! (The shortform might not be a valid qname, say the > docs) > System.out.println( "qnameFor: " + model.qnameFor( > "http://xmlns.com/foaf/0.1/Person" ) ); > > // To find all the available prefixes, take a look at the map > System.out.println( "== Show ALL THE PREFIXES!!! =="); > for ( Map.Entry<String, String> entry : model.getNsPrefixMap().entrySet() ) { > System.out.println( entry.getKey() + ": " + entry.getValue() ); > } > } > } > > shortform: foaf:Person > shortform: foaf: > shortform: foaf:Person > qnameFor: foaf:Person > == Show ALL THE PREFIXES!!! == > rdfs: http://www.w3.org/2000/01/rdf-schema# > geo: http://www.w3.org/2003/01/geo/wgs84_pos# > foaf: http://xmlns.com/foaf/0.1/ > admin: http://webns.net/mvcb/ > rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# > > On Fri, Apr 12, 2013 at 1:17 PM, Evan Patton <[email protected]> wrote: >> Hello all, >> >> Is there any way to access the prefixes from loaded documents via the Model >> interface? For example, I create a new model and read in a number of >> ontologies (e.g. DBpedia, FOAF) via the Model.read(InputStream, String) >> method. If I then call the getNsURIPrefix(String) with a URI (e.g. >> http://xmlns.com/foaf/0.1/Person) I would expect that it should return >> "foaf" as that prefix was bound when I loaded the FOAF ontology, but instead >> it just returns null. Is it possible to capture the prefix mappings when the >> files are loaded? >> >> Thanks in advance for any solutions, >> Evan Patton > > > > -- > Joshua Taylor, http://www.cs.rpi.edu/~tayloj/ -- Joshua Taylor, http://www.cs.rpi.edu/~tayloj/
