com.hp.hpl.jena.reasoner.rdfsReasoner1

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » RSS RDF » Jena 2.5.5 » com.hp.hpl.jena.reasoner.rdfsReasoner1 
com.hp.hpl.jena.reasoner.rdfsReasoner1
This package contains an example RDFS reasoner. It was developed partly to test the reasoning API and support machinery though it is a complete and reasonably useful RDFS implementation. It has since been replaced by RDFSRuleReasoner which offers much better scaling.

All RDFS implementations need to make tradeoffs. This implementation is intended to be complete (it can cope with metadata level declarations such as declaring and using a subPropertyOf rdfs:subPropertyOf). It requires all schema information to be loadable into main memory - the property and class lattices are stored reasonably efficiently but they will often be the limiting factor on size (and certainly on performance). These lattices are processed at the time the reasoner is bound to the schema and instance data. However, the rest of the RDFS inference rules will operate in a backwards chaining mode so that significant processing will be required to answer a given query. Highly ground queries will operate reasonably efficiently, queries with wildcards in predicate slot will operate particularly inefficiently and will make redundant passes across the data.

Implementation notes

The subClassOf and subPropertyOf relationships are cached in memory using the TransitiveReasoner. This stores those relationships as explicit graphs containing the full relationship closure. The direct links are represented by direct versions of the subClassOf and subPropertyOf relations which can be constructed using ReasonerFactory#makeDirect or found as class variables on the TransitiveReasoner.

The schema rules such as domain, range and subPropertyOf inference are also checked at the time the data is bound but the result is the addition of a set of backward chaining rewrite rules which can match a given query against possible inferences.  For example the domain rule is:

   ?p rdfs:domain ?z -> ?s rdf:type ?z <- ?s ?p _

Thus the processing of a (p,domain,z) declaration generates a backward rule of the form "if you are looking for something of type z then check if there is any individual which is the subject of a p property.

All of these backward rules are implemented using the Graph iterators together with some simple triple rewrite machinery.

One special case to be aware of is the processing of container membership property entailments. By default the reasoner does a scan of the entire tbox+data looking for properties of the form rdf:_n and for each one found it asserts the appropriate entailments. This involves a pass over the whole dataset (we take the opportunity to cache all [p,type, Property] and [p, subPropertyOf,p] entailments at the same time). This behaviour can be switched off using the configuration option [TODO: document] which considerably reduces to the initial processing time but [x,type,containerMembershipProperty] and [x,subPropertyOf,member] entailments will then be missed. This may or may not be a useful trade-off depending on the application.



Java Source File NameTypeComment
AssertFRule.javaClass Variant on a forward rule which asserts a set of instantiated triples into the reasoner's cache.
BackchainFRule.javaClass Variant on a forward rule which instantiates a backward rule and registers it with the reasoner.
BaseFRule.javaClass Base class for forward rules.
BRWRule.javaClass Datastructure to hold a trivial backward rewrite rule.

The rules take the form "pattern <- pattern" where the pattern is is a triple pattern with variables.

PatternRouter.javaClass A utility for mapping a TriplePattern to a sequence of operations that could satisfy it.
PropertyBRWRule.javaClass A special case of a backchaing rule to handle the nasty case of "anything mentioned in predicated position is a Property".
RDFSInfGraph.javaClass An RDFS reasoner that has been bound to both a TBox and an ABox. It cannot be bound any futher.
RDFSReasoner.javaClass
RDFSReasonerFactory.javaClass Factory class for creating blank instances of the RDFS reasoner.
ResourceBRWRule.javaClass A special case of a backchaing rule to handle the nasty case of "anything mentioned in any triple is a Resource".
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.