Skip to content

Blazegraph INFERENCE #35

@redskate

Description

@redskate

Hello again dear community

Thank you so far for helping/answering my questions.
I am experiencing a more or less unexpected behaviour concerning inference while inserting "similar" (but not same) RDF Entities via SPARQL-UPDATE after having loaded an OWL ontology on Blazegraph 1.2.4 - the current one (thank you!).

The namespace options:

demo_TESTINFERENCE2

com.bigdata.rdf.store.AbstractTripleStore.justifytrue
com.bigdata.rdf.sail.namespacedemo_TESTINFERENCE2
com.bigdata.relation.classcom.bigdata.rdf.store.LocalTripleStore
com.bigdata.rdf.sail.truthMaintenancetrue
com.bigdata.btree.writeRetentionQueue.capacity16000
com.bigdata.rdf.store.AbstractTripleStore.textIndextrue
com.bigdata.search.FullTextIndex.fieldsEnabledfalse
com.bigdata.relation.namespacedemo_TESTINFERENCE2
com.bigdata.rdf.store.AbstractTripleStore.vocabularyClasscom.bigdata.rdf.vocab.core.BigdataCoreVocabulary_v20160317
com.bigdata.rdf.store.AbstractTripleStore.quadsfalse
com.bigdata.relation.containerdemo_TESTINFERENCE2
com.bigdata.journal.AbstractJournal.bufferModeDiskRW
com.bigdata.rdf.sail.bufferCapacity5000000

The behaviour is observed while updating (SPARQL-UPDATE) the namespace using twice the same query below with two different subjects (once with subject http://semweb.ch/base/9 and once with http://semweb.ch/base/19, also changing the prefLabel from "CCC9" to resp. "CCC19" to distinguish the entities also by a prefLabel (see below). This query just creates one concept scheme adding some attributes to it.

prefix skos: http://www.w3.org/2004/02/skos/core#
prefix skosxl: http://www.w3.org/2008/05/skos-xl#
prefix dcterms: http://purl.org/dc/terms/
prefix semwebo: http://semweb.ch/onto/
prefix rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#
prefix rdfs: http://www.w3.org/2000/01/rdf-schema#
prefix dc: http://purl.org/dc/elements/1.1/
prefix cco: http://creativecommons.org/ns#
prefix foaf: http://xmlns.com/foaf/0.1/
prefix void: http://rdfs.org/ns/void#
prefix nkos: http://purl.org/nkos/
INSERT {
http://semweb.ch/base/9 rdf:type skos:ConceptScheme.
http://semweb.ch/base/9 skos:prefLabel "CCC9"@en.
http://semweb.ch/base/9 dcterms:created "2016-11-27T13:09:14.332+01:00"^^http://www.w3.org/2001/XMLSchema#dateTime.
http://semweb.ch/base/9 dcterms:creator "Please specify".
http://semweb.ch/base/9 dcterms:subject "Please specify"@en.
http://semweb.ch/base/9 dcterms:title "Please specify"@en.
http://semweb.ch/base/9 dcterms:description "Please specify"@en.
http://semweb.ch/base/9 dcterms:hasVersion "Please specify".
http://semweb.ch/base/9 dcterms:modified "2016-11-27T13:09:14.332+01:00"^^http://www.w3.org/2001/XMLSchema#dateTime.
http://semweb.ch/base/9 dcterms:identifier "Please specify".
http://semweb.ch/base/9 dc:publisher "Please specify".
http://semweb.ch/base/9 dcterms:rights "Please specify".
http://semweb.ch/base/9 cco:license "Please specify".
http://semweb.ch/base/9 cco:morePermissions "Please specify".
http://semweb.ch/base/9 cco:attributionURL "Please specify".
http://semweb.ch/base/9 cco:attributionName "Please specify".
http://semweb.ch/base/9 foaf:homepage "Please specify".
http://semweb.ch/base/9 foaf:page "Please specify".
http://semweb.ch/base/9 dcterms:issued "Please specify".
http://semweb.ch/base/9 nkos:sizeNote "Please specify".
http://semweb.ch/base/9 nkos:kosType "Please specify".
http://semweb.ch/base/9 nkos:updateFrequency "Please specify".
http://semweb.ch/base/9 void:vocabulary "Please specify".
http://semweb.ch/base/9 void:sparqlEndpoint "Please specify".
http://semweb.ch/base/9 void:rootResource "Please specify".
http://semweb.ch/base/9 void:exampleResource "Please specify".
http://semweb.ch/base/9 void:feature "Please specify".
http://semweb.ch/base/9 owl:versionInfo "Please specify".
}
WHERE {}

Issuing these two SPARQL-Queries on a fresh created Blazegraph namespace results in a correct exploration of the URI's http://semweb.ch/base/9, resp. http://semweb.ch/base/19 showing each a distinct entity, one for each URI.

The "unexpected" thing: In case I load - again on a fresh created namespace with the same options - the well-known FOAF ontology from http://xmlns.com/foaf/spec/20140114.rdf and then issue both (different) insertion queries (see above), the result of exploration of the URI's http://semweb.ch/base/9, resp. http://semweb.ch/base/19 shows an interesting outcome (see below) where both terms are linked via a "sameAs" predicate and the attributes are merged in each of the entities:

Exploring http://semweb.ch/base/9 gives a similar outcome as exploring http://semweb.ch/base/19:

<http://semweb.ch/base/9>

Outgoing Links

rdf:typeowl:Thing
rdf:typeskos:ConceptScheme
owl:sameAs<http://semweb.ch/base/19>

Incoming Links

<http://semweb.ch/base/19>owl:sameAs

Attributes

<http://creativecommons.org/ns#attributionName>Please specify
<http://creativecommons.org/ns#attributionURL>Please specify
<http://creativecommons.org/ns#license>Please specify
<http://creativecommons.org/ns#morePermissions>Please specify
dcterm:created2016-11-27T12:09:14.332Z
dcterm:creatorPlease specify
dcterm:identifierPlease specify
dcterm:rightsPlease specify
dcterm:subjectPlease specify
<http://purl.org/nkos/kosType>Please specify
<http://purl.org/nkos/sizeNote>Please specify
<http://purl.org/nkos/updateFrequency>Please specify
owl:versionInfoPlease specify
foaf:homepagePlease specify
foaf:isPrimaryTopicOfPlease specify
foaf:makerPlease specify
foaf:pagePlease specify
skos:prefLabelCCC9
skos:prefLabelCCC19
dcterm:descriptionPlease specify
dcterm:hasVersionPlease specify
dcterm:issuedPlease specify
dcterm:modified2016-11-27T12:09:14.332Z
dcterm:titlePlease specify
dc:publisherPlease specify
void:exampleResourcePlease specify
void:featurePlease specify
void:rootResourcePlease specify
void:sparqlEndpointPlease specify
void:vocabularyPlease specify

Of course, this interesting result is not what I need here - I would just need both entities separately in the RDF store. This behaviour appears only after having loaded the OWL FOAF ontology.

First question: Please what can I do in order to create but also select both entities separately ? Note that these entities (creation of Concept Schemes) can and should created at any time, before or after having loaded an ontology. Of course up to now I need truth maintenance (otherwise I would have to implement it by myself, this would explode the implementation time).

Second question: Obviously this is one of the (hidden?) behaviours of Blazegraph inferences, which are sketched (just sketched) at https://wiki.blazegraph.com/wiki/index.php/InferenceAndTruthMaintenance (thank you), -> Is there please a white paper or a real explanatory link (or maybe a web page) explaining what exactely is done on which option by the inference engine ?

Thank you in advance
Regards

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions