Starting individual project - best practices for updating ontology?

I am in the (very) early stages of a personal project where I plan to build out the SOLI ontology for my project, and want to make sure I’m contributing in the correct way. I can update an OWL file locally for purposes of the project, but I’d like, if possible, for my work to be available to others.

At a very high level, my plan is to convert raw corporate registry data from the Illinois* Secretary of State (stored in fixed width text files) into a graph database that can be queried to find relationships between individual entities. The idea is that the end user could search for a specific LLC and quickly return results showing other entities that might be related by, for example, the same business address or by shared members.

SOLI is the perfect ontology for this project, but just in my limited browsing I know that I’m going to spend some time building out further as it relates to corporate entities. Just as one example, right now SOLI does not have a class of “registered agent,” which is something that I’ll want to map for each individual entity. Once I do all the work of building out this part of SOLI, I want to make sure it can get used beyond my little side project. Thus, before starting, I want to make sure that as I create new classes, etc., I’m adhering to the correct standards.

I notice in GitHub that there are plans to write a markdown file with a guide for contributors, but that isn’t complete yet. So this is not to rush anyone–I just want to make sure I’m doing things right from the outset so that it saves everyone less work later on.

*I’m starting with Illinois because it’s where I live and practice, and because they make the bulk registry available for free (albeit in an outdated format). I’ve looked, and I think there are ~15 or so states that provide free bulk data, and another ~15 or so that make you pay in some fashion. I hope to incorporate bulk data from more states much later on, but am keeping it simple (as possible) for now.

Hi, @txpasley — thanks for your nice note!

I’ll let @mjbommar respond about the roadmap for Markdown — and the best ways for you to contribute back to SOLI.

For your note about Registered Agent — SOLI does have these:

  1. Agent — identifier: RBDvvMcl4VbqDv1BGaZqaSL
  2. Agency Service Provider — identifier: R8o0lzPUMDOV8nWAfYHXpEK

…one or both of which might fit the bill for Registered Agent. Or perhaps Registered Agent becomes a new child of Agent? :person_shrugging:

Thanks for implementing SOLI, and we look forward to your collaboration!

Thanks for the reply @Damien_Riehl!

I agree that Registered Agent would be appropriate as a new child of Agent. I’m not sure Agency Service Provider or the other examples fit the bill, as it seems to be a term specific to finance transactions. Registered Agent is a common term for a person authorized to accept service of process on a corporate entity in the jurisdiction.

E.g., here’s the definition in the Delaware LLC Act:

(a) Each limited liability company shall have and maintain in the State of Delaware:

(1) A registered office, which may but need not be a place of its business in the State of Delaware; and

(2) A registered agent for service of process on the limited liability company, having a business office identical with such registered office, which agent may be any of:

a. The limited liability company itself,

b. An individual resident in the State of Delaware,

c. A domestic limited liability company (other than the limited liability company itself), a domestic corporation, a domestic partnership (whether general (including a limited liability partnership) or limited (including a limited liability limited partnership)), or a domestic statutory trust, or

d. A foreign corporation, a foreign limited liability partnership, a foreign limited partnership (including a foreign limited liability limited partnership), a foreign limited liability company, or a foreign statutory trust.