From: Timothy R. <tre...@st...> - 2012-07-30 15:28:34
|
On 07/30/2012 07:48 AM, David Osumi-Sutherland wrote: > On 30 Jul 2012, at 15:32, Ignazio Palmisano wrote: >> >> >> Worth adding the test to examples and test cases. >> > Yes please. > > We've also hit this problem. The solution is not at all obvious > (actually still not sure I understand it). When I first saw this, it also took me a bit of time to figure out how it worked. But actually it is quite simple. In order to parse an expression in the Manchester OWL syntax, you need to have a mapping between the tokens that represent entities and the entities that are represented. In other words, you are not going to have any luck parsing an expression containing the string 'GWAS study' if the parser does not know that 'GWAS study' represents a class. The OWL entity mapper provides this mapping. Part of this functionality also involves ensuring that everything is well declared. For instance, when the parser has read the partial expression "p some", a priori it would not know whether p was a data property or an object property. The OWL entity checker resolves this ambiguity which both simplifies the parser and gives rise to simpler error messages. Two common types of OWL entity checkers are 1. an entity checker that reads an ontology to generate a mapping from IRI fragments to the corresponding entity (entities in the case of punning) from the ontology. 2. an entity checker that reads an ontology to generate a mapping from the rdfs:label for an entity to the corresponding entity (possibly entities but this can be dangerous). -Timothy > I think an updated version of the existing example code for parsing > Manchester Syntax DL queries that allows for labels with spaces would > be most useful. > > Cheers, > David > >> Cheers, >> I. >> >> On Jul 30, 2012 3:30 PM, "Timothy Redmond" <tre...@st... >> <mailto:tre...@st...>> wrote: >> > >> > >> > Matthew's diagnosis was correct. You need to setup the >> OWLEntityChecker correctly. >> > >> > I was struck by the fact that this works in Protege 4 so it seemed >> a bit less likely that this was an OWL api bug. I made a test >> (attached) and it parsed your expression without any trouble. >> > >> > -Timothy >> > >> > >> > >> > >> > On 07/30/2012 02:13 AM, Dani Welter wrote: >> >> >> >> Query that works in Protege but not in code: 'GWAS study' and >> has_publication_date some dateTime[< >> "2009-01-01T00:00:00+00:00"^^dateTime] >> >> >> >> Query that works in both cases: chromosome and has_part value >> band_10p15.1 >> >> >> >> Exception for first query: >> >> org.semanticweb.owlapi.expression.ParserException: Encountered >> 'GWAS study' at line 1 column 1. Expected one of: >> >> Class name >> >> Object property name >> >> Data property name >> >> not >> >> inverse >> >> ( >> >> { >> >> >> >> at >> org.coode.owlapi.manchesterowlsyntax.ManchesterOWLSyntaxEditorParser.createException(ManchesterOWLSyntaxEditorParser.java:2969) >> >> at >> org.coode.owlapi.manchesterowlsyntax.ManchesterOWLSyntaxEditorParser.parseNonNaryClassExpression(ManchesterOWLSyntaxEditorParser.java:801) >> >> at >> org.coode.owlapi.manchesterowlsyntax.ManchesterOWLSyntaxEditorParser.parseUnion(ManchesterOWLSyntaxEditorParser.java:687) >> >> at >> org.coode.owlapi.manchesterowlsyntax.ManchesterOWLSyntaxEditorParser.parseIntersection(ManchesterOWLSyntaxEditorParser.java:662) >> >> at >> org.coode.owlapi.manchesterowlsyntax.ManchesterOWLSyntaxEditorParser.parseClassExpression(ManchesterOWLSyntaxEditorParser.java:649) >> >> at >> org.coode.owlapi.manchesterowlsyntax.ManchesterOWLSyntaxClassExpressionParser.parse(ManchesterOWLSyntaxClassExpressionParser.java:72) >> >> at >> uk.ac.ebi.fgpt.StuffTester.DLQueryTester.main(DLQueryTester.java:134) >> >> >> >> >> >> Code used for the parser: >> >> >> >> List<OWLAnnotationProperty> properties = >> Arrays.asList(df.getRDFSLabel()); >> >> AnnotationValueShortFormProvider annoSFP = new >> AnnotationValueShortFormProvider( >> >> properties, new HashMap<OWLAnnotationProperty, >> List<String>>(), manager); >> >> ShortFormEntityChecker checker = new ShortFormEntityChecker(new >> BidirectionalShortFormProviderAdapter(manager, >> manager.getOntologies(), annoSFP)); >> >> ManchesterOWLSyntaxClassExpressionParser parser = new >> ManchesterOWLSyntaxClassExpressionParser(df, checker); >> >> String query1 = "'GWAS study' and has_publication_date some >> dateTime[< \"2009-01-01T00:00:00+00:00\"^^dateTime]"; >> >> OWLClassExpression pre2009 = parser.parse(query1); >> >> >> >> >> >> Thanks >> >> Dani >> >> >> >> >> >> On 27/07/12 19:30, Ignazio Palmisano wrote: >> >>> >> >>> >> >>> On Jul 27, 2012 3:01 PM, "Dani Welter" <dw...@eb... >> <mailto:dw...@eb...>> wrote: >> >>> > >> >>> > Hi, >> >>> > >> >>> > I'm trying to parse DL queries in Manchester syntax into class >> >>> > expressions using the ManchesterOWLSyntaxClassExpressionParser >> but fail >> >>> > at the following problem: most of my class labels have a space >> in them >> >>> > (e.g. 'GWAS study', 'cytogenetic band' etc). In the DL query tab in >> >>> > Protege, this is easily solved by surrounding the name with single >> >>> > quotes but in my program, for some reason, this is interpreted >> as the >> >>> > label starting with a single quote, which throws a >> ParserException. I've >> >>> > tried various combinations of double quotes and + or %20 to replace >> >>> > space etc but no success. The rest of the code is definitely >> correct as >> >>> > the query parser works fine if the query starts with a >> single-word class >> >>> > name. >> >>> > >> >>> > Any suggestions for fixes/work-arounds (other than manually >> build the >> >>> > query)? >> >>> >> >>> It's clearly a bug with that parser. I'm not sure if there is >> another parser that you can use to work around the issue. Can you >> post an example query that works in protégé and gives you troubles in >> code? It makes it easier to write junit tests. >> >>> >> >>> I. >> >>> >> >>> > >> >>> > Thanks >> >>> > Dani >> >>> > >> >>> > >> ------------------------------------------------------------------------------ >> >>> > Live Security Virtual Conference >> >>> > Exclusive live event will cover all the ways today's security and >> >>> > threat landscape has changed and how IT managers can respond. >> Discussions >> >>> > will include endpoint security, mobile security and the latest >> in malware >> >>> > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >> >>> > _______________________________________________ >> >>> > Owlapi-developer mailing list >> >>> > Owl...@li... >> <mailto:Owl...@li...> >> >>> > https://lists.sourceforge.net/lists/listinfo/owlapi-developer >> >>> >> >>> >> >>> >> >>> >> ------------------------------------------------------------------------------ >> >>> Live Security Virtual Conference >> >>> Exclusive live event will cover all the ways today's security and >> >>> threat landscape has changed and how IT managers can respond. >> Discussions >> >>> will include endpoint security, mobile security and the latest in >> malware >> >>> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >> >>> >> >>> >> >>> >> >>> _______________________________________________ >> >>> Owlapi-developer mailing list >> >>> Owl...@li... >> <mailto:Owl...@li...> >> >>> https://lists.sourceforge.net/lists/listinfo/owlapi-developer >> >> >> >> >> >> >> >> >> >> >> ------------------------------------------------------------------------------ >> >> Live Security Virtual Conference >> >> Exclusive live event will cover all the ways today's security and >> >> threat landscape has changed and how IT managers can respond. >> Discussions >> >> will include endpoint security, mobile security and the latest in >> malware >> >> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >> >> >> >> >> >> >> >> _______________________________________________ >> >> Owlapi-developer mailing list >> >> Owl...@li... >> <mailto:Owl...@li...> >> >> https://lists.sourceforge.net/lists/listinfo/owlapi-developer >> > >> > >> > >> > >> ------------------------------------------------------------------------------ >> > Live Security Virtual Conference >> > Exclusive live event will cover all the ways today's security and >> > threat landscape has changed and how IT managers can respond. >> Discussions >> > will include endpoint security, mobile security and the latest in >> malware >> > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >> > _______________________________________________ >> > Owlapi-developer mailing list >> > Owl...@li... >> <mailto:Owl...@li...> >> > https://lists.sourceforge.net/lists/listinfo/owlapi-developer >> > >> >> ------------------------------------------------------------------------------ >> Live Security Virtual Conference >> Exclusive live event will cover all the ways today's security and >> threat landscape has changed and how IT managers can respond. >> Discussions >> will include endpoint security, mobile security and the latest in >> malware >> threats. >> http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/_______________________________________________ >> Owlapi-developer mailing list >> Owl...@li... >> <mailto:Owl...@li...> >> https://lists.sourceforge.net/lists/listinfo/owlapi-developer > > > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > > > _______________________________________________ > Owlapi-developer mailing list > Owl...@li... > https://lists.sourceforge.net/lists/listinfo/owlapi-developer |