Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3241242
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 17, 20262026-05-17T18:10:34+00:00 2026-05-17T18:10:34+00:00

I have a set of objects with attributes and a bunch of rules that,

  • 0

I have a set of objects with attributes and a bunch of rules that, when applied to the set of objects, provides a subset of those objects. To make this easier to understand I’ll provide a concrete example.

My objects are persons and each has three attributes: country of origin, gender and age group (all attributes are discrete). I have a bunch of rules, like “all males from the US”, which correspond with subsets of this larger set of objects.

I’m looking for either an existing Java “inference engine” or something similar, which will be able to map from the rules to a subset of persons, or advice on how to go about creating my own. I have read up on rule engines, but that term seems to be exclusively used for expert systems that externalize the business rules, and usually doesn’t include any advanced form of inferencing. Here are some examples of the more complex scenarios I have to deal with:

  1. I need the conjunction of rules. So when presented with both “include all males” and “exclude all US persons in the 10 – 20 age group,” I’m only interested in the males outside of the US, and the males within the US that are outside the 10 – 20 age group.

  2. Rules may have different priorities (explicitly defined). So a rule saying “exclude all males” will override a rule saying “include all US males.”

  3. Rules may be conflicting. So I could have both an “include all males” and an “exclude all males” in which case the priorities will have to settle the issue.

  4. Rules are symmetric. So “include all males” is equivalent to “exclude all females.”

  5. Rules (or rather subsets) may have meta rules (explicitly defined) associated with them. These meta rules will have to be applied in any case that the original rule is applied, or if the subset is reached via inferencing. So if a meta rule of “exclude the US” is attached to the rule “include all males”, and I provide the engine with the rule “exclude all females,” it should be able to inference that the “exclude all females” subset is equivalent to the “include all males” subset and as such apply the “exclude the US” rule additionally.

I can in all likelihood live without item 5, but I do need all the other properties mentioned. Both my rules and objects are stored in a database and may be updated at any stage, so I’d need to instantiate the ‘inference engine’ when needed and destroy it afterward.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-17T18:10:34+00:00Added an answer on May 17, 2026 at 6:10 pm

    There are a bunch of embedded Prolog-like SLD solvers for Java; my favourite approach is to use mini-Kanren for Scala, since that is clean and allows you to use Scala to lazily handle the results of queries, but I have not used it in any depth. See Embedded Prolog Interpreter/Compiler for Java for other options, as well as Ross’ answer.

    SLD solvers handle all of your criteria, provided they have some extra features that Prolog has:

    1. Conjunction of rules: Basic SLD goal processing;
    2. Rules may have different priorities: Prolog’s cut rule allows representation of negation, provided the queries are decidable;
    3. Rules may be conflicting: Again, with cut you can ensure that lower priority clauses are not applied if higher priority goals are satisfied. There are a few ways to go about doing this.
    4. Rules are symmetric: With cut, this is easily ensured for decidable predicates.
    5. Rules (or rather subsets) may have meta rules (explicitly defined) associated with them: your example seems to suggest this is equivalent to 4, so I’m not sure I get what you are after here.

    The advantages and disadvantages of SLD solvers over description logic-based tools are:

    1. Programmatic power, flexibility: you can generally find programming solutions to modelling difficulties, where description logics might require you to rethink your models. But of course absence of duct-tape means that description logic solutions force you to be clean, which might be a good discipline.
    2. Robustness: SLD solvers are a very well understood technology, while description logic tools are often not many steps from their birth in a PhD thesis.
    3. Absence of semantic tools: description logic has nice links with first-order logic and model logic, and gives you a very rich set of techniques to reason about them. The flexibility of Prolog typically makes this very hard.

    If you do not have special expertise in description logic, I’d recommend an SLD solver.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a set of objects that I want to conform to an interface,
I have an odd problem with Django. I have a set of objects that
Say I have a set myset of custom objects that may be equal although
I have a class that serializes a set of objects (using XML serialization) that
I have an API that filters a set of objects based on the ID
I have a set of entity objects in my iOS Core Data database that
We have found that we have a set of attributes(all are not going to
I have a .NET code first EF 4.1 set of objects that I am
I have a few objects in my program that have about 10-15 attributes each.
I have a set of objects I'd like to do some operations on, in

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.