Property domain and range definition - additive or overwritten?

In the definition below, would the so:domainIncludes be combined together or would the latter overwrite the first? (And would it matter if the definitions were in the same named graph or separate ones?)

:login_date a owl:DatatypeProperty ;
    rdfs:label "login_date" ;
    so:domainIncludes :table_1 , :table_2 ;
    so:rangeIncludes xsd:string .

:login_date a owl:DatatypeProperty ;
    rdfs:label "login_date" ;
    so:domainIncludes :table_3 ;
    so:rangeIncludes xsd:string .


ChatGPT's answer:

In RDF/OWL semantics, properties and classes are assumed to be open. Thus, stating new information doesn't overwrite old information but adds to it. If these statements are in the same named graph or different ones, it won't matter in terms of the overall inferred model: :login_date will include :table_1, :table_2, and :table_3 in its domain. This is assuming default behavior and settings; specific behavior might be influenced by the database's configuration or the application querying it.

Sounds sensible to me! Would a knowledgeable knowledge graph person be so kind as to verify?

Additive. Both RDF(S) and OWL semantics are so-called monotonic: new statements can only yield new inferences but never invalidate inferences that were true in the previous state of the data.

If you have a statement that the domain of :p is :A, then every object with an outgoing :p edge is an instance of :A. If you then add that the domain of :p is :B, then every object with an outgoing :p edge is an instance of both :A and :B.

so:domainIncludes works differently from rdfs:domain. Its semantics is disjunctive, i.e. the domain is A or B, not conjunctive. There're discussions on the Web on the differences between so:domainIncludes and rdfs:domain, but as far as I can tell this isn't the main question here.


Any idea on how I would learn this kinda information (which seems important)? Is there a book out there for "How to get comfortable with RDF"?

There're definitely books out there and the monotonicity must be mentioned in a few (it's also in the OWL Guide). I like the Foundations of Semantic Web Technologies, other people prefer the Dean Allemang's book. There are others, e.g on SHACL.

Adrian Gschwend from Zazuko at some point started curating a list of resources on everything RDF-related, you can check it out too:

Hope it helps,

1 Like

Thank you for the recommendations Pavel.

Shameless self self plug GitHub - semantalytics/awesome-semantic-web: A curated list of various semantic web and linked data resources.

1 Like

Related to my recent post on Stardog Community, what do you think about adding a section for mailing lists / forums / discussion groups? I know of 1 mailing list (W3C Semantic Web) and 1 forum (...this one). Do you know of any others?

Gonna add this here for reference too

That looks like a great list. I haven't checked it out in detail yet but definitely will. You probably know about these already but here are some that I use. Of all of them, besides this one, the one I find the most useful is the Protege User support list that I gave a link to previously. The people there really know their stuff and respond quickly. It's one of the things I like about Protege, the support is close to what you get with many commercial products.

Ontolog Forum: This is a great list if you want to have very theoretical and even philosophical discussions with people who have been doing AI forever. Also can be a good source for technical questions.

Discord Ontologies and Semantic Web Group:

Discord Knowledge Graph Group:

Discord Taxonomy Group:

I find the Taxonomy group to be the most interesting on Discord because the other two are mostly newer users but there are some very experienced and well known people in the Taxonomy group.

Basic Formal Ontology home page:

Shameless self promotion: I try to keep most of my blog posts on topics such as useful reusable SPARQL queries, useful tools in Protege that people may not know about, workarounds for common problems with Protege, etc.

OBO Foundry: OBO is one of the best examples of a large, curated library of interoperable ontologies for healthcare and related domains (e.g., genetics) based on one upper model (BFO) and set of standards. There is also a mail list on that page you can join although it isn't very active.