You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by suganya <su...@gmail.com> on 2013/04/27 15:20:26 UTC

Error in getSubject()

error in getsubject method;

here is a piece of code
  while ( axioms.hasNext() ) {
                    Resource re=axioms.next().getSubject() ;
                        System.out.println( "\t"+ re);
ERROR in netbeans:
cannot find symbol
  symbol:   method getSubject()
  location: class java.lang.Object

-- 
with regards.....
sugan,...

Re: Error in getSubject()

Posted by Joshua TAYLOR <jo...@gmail.com>.
On Sat, Apr 27, 2013 at 12:33 PM, suganya <su...@gmail.com> wrote:
> Hi,
> This is the code i got through jena community... getting error in
> getSubject().....can anyone help me????

I am familiar with that code.  I wrote it and posted it to the list on
11 days ago.  In my development setup it compiles and runs without
issue.  To say that it is an "error in getSubject" suggests that the
problem lies within Jena code, which is not the case.

As Andy Seaborne suggested to you in another thread, these type of
errors arise from some misconfiguration in your development setup. You
haven't told us whether this "error" is a failure to compile, or an
error while running compiled code.  Both suggest issues with Jena
being available on your classpath, either at run time or compile time.
  Andy's advice to use an environment like Eclipse will help to avoid
many of these types of issues.

//JT
-- 
Joshua Taylor, http://www.cs.rpi.edu/~tayloj/

Re: Error in getSubject()

Posted by suganya <su...@gmail.com>.
Hi,
This is the code i got through jena community... getting error in
getSubject().....can anyone help me????

import com.hp.hpl.jena.ontology.OntClass;
import com.hp.hpl.jena.ontology.OntModel;
import com.hp.hpl.jena.ontology.OntModelSpec;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.rdf.model.*;
import com.hp.hpl.jena.rdf.model.StmtIterator;
import com.hp.hpl.jena.vocabulary.*;
import com.hp.hpl.jena.query.*;
import com.hp.hpl.jena.vocabulary.RDFS;
import com.hp.hpl.jena.util.iterator.ExtendedIterator;

public class MappingOntologies {
        public static void main(String[] args) {
                // In most cases, the ontologies already exist, but since
we do not have
                // sample data here, we create minimal ontologies that have
the classes
                // that were mentioned, namely Ont1 that has a class
Employee with a
                // subclass Age, and Ont2 that has a class Employee.

                // Ont1
                String NS1 = "http://www.example.com/ont1/";
                OntModel ont1 = ModelFactory.createOntologyModel(
OntModelSpec.OWL_DL_MEM );
                OntClass employee1 = ont1.createClass( NS1 + "Employee" );
                OntClass age1 = ont1. createClass( NS1 + "Age" );
                employee1.addSubClass( age1 );

                // Ont2
                String NS2 = "http://www.example.com/ont2/";
                OntModel ont2 = ModelFactory.createOntologyModel(
OntModelSpec.OWL_DL_MEM );
                OntClass employee2 = ont2.createClass( NS2 + "Employee" );

                // Usually when we merge or map ontologies, we are not
modifying either
                // ontology, but actually creating some third ontology that
imports the
                // others, and adding the mapping axioms to that third
ontology.  In OWL
                // we would probably do this using owl:imports, but in the
Jena API we
                // can just create the third model and add the first two as
submodels.

                // Ont3;  we make this one an inference model so that we
can get the
                // inference that employee2 has age1 is a subclass of
employee2.
                OntModel ont3 = ModelFactory.createOntologyModel(
OntModelSpec.OWL_DL_MEM_RULE_INF );

                // add the submodels
                ont3.addSubModel( ont1 );
                ont3.addSubModel( ont2 );

                // assert that employee1 is equivalent to employee2
                ont3.add( employee1, OWL.equivalentClass, employee2 );

                // To see the subclasses of employee2 in the merged/mapped
ontology,
                // ask for statements of the form [x, rdfs:subClassOf,
employee2].  Each
                // x is a subclass of employee2.
                StmtIterator axioms = ont3.listStatements( null,
RDFS.subClassOf, employee2 );
                System.out.println( "Subclasses of "+employee2 );
                while ( axioms.hasNext() ) {
                    Resource re=axioms.next().*getSubject()* ;
                      System.out.println( "\t"+ re);
                }

                // Alternatively, you could get the employee2 OntClass from
the merged
                // model and list its subclasses.  It is important to
retrieve the
                // OntClass from the merged model, because that is the
model that
                // OntClass#listSubClasses will query.
                //
                // Note:  when I run this query, I only one less result
than I do
                // in the previous query.  I do not see the (trivial)
result that
                // employee2 is a subclass of itself.  Depending on your
intended
                // use, this might be a reason to favor the first approach.
                OntClass employee32 = ont3.getOntClass( NS2 + "Employee" );
                ExtendedIterator subclasses = employee32.listSubClasses();
                System.out.println( "Subclasses of "+employee32 );
                while ( subclasses.hasNext() ) {
                        System.out.println( "\t"+subclasses.next() );
                }
        }
}



On Sat, Apr 27, 2013 at 8:04 PM, Joshua TAYLOR <jo...@gmail.com>wrote:

> On Sat, Apr 27, 2013 at 9:20 AM, suganya <su...@gmail.com> wrote:
> > error in getsubject method;
> >
> > here is a piece of code
> >   while ( axioms.hasNext() ) {
> >                     Resource re=axioms.next().getSubject() ;
> >                         System.out.println( "\t"+ re);
> > ERROR in netbeans:
> > cannot find symbol
> >   symbol:   method getSubject()
> >   location: class java.lang.Object
>
> That doesn't look like an error in getSubject().  That looks like
> axioms is an iterator over java.lang.Objects, not Jena statements.
> There's not enough code here to tell, though…
>
> //JT
>
> --
> Joshua Taylor, http://www.cs.rpi.edu/~tayloj/
>



-- 
with regards.....
sugan,...

Re: Error in getSubject()

Posted by Joshua TAYLOR <jo...@gmail.com>.
On Sat, Apr 27, 2013 at 9:20 AM, suganya <su...@gmail.com> wrote:
> error in getsubject method;
>
> here is a piece of code
>   while ( axioms.hasNext() ) {
>                     Resource re=axioms.next().getSubject() ;
>                         System.out.println( "\t"+ re);
> ERROR in netbeans:
> cannot find symbol
>   symbol:   method getSubject()
>   location: class java.lang.Object

That doesn't look like an error in getSubject().  That looks like
axioms is an iterator over java.lang.Objects, not Jena statements.
There's not enough code here to tell, though…

//JT

-- 
Joshua Taylor, http://www.cs.rpi.edu/~tayloj/