0

I have RDF file with a RDF/XML format. The RDF file describes subject, action, and object of a sentence, and I want to extract them. The subject and object values are described in aapi:text, but object value is described by aapi:name. My problem is that I can't distinguish between subject and action of a sentence, as they have the same predicate and they don't preserve an order.

This is my code:

FileManager.get().addLocatorClassLoader(MainSparql.class.getClassLoader());
    Model model= FileManager.get().loadModel("c:/users/bistika/workspace/test3/src/com/sparql/test.rdf");


    String querystrng="PREFIX aapi: <http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#> " +
            "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> " +

            "SELECT  ?id (SAMPLE(?N) AS ?subject)(SAMPLE(?N2) AS ?action)(SAMPLE(?ob) AS ?object) WHERE {" +        
            "?id aapi:Text ?N , ?N2 ; aapi:Name ?ob."+  
            "FILTER( ?N != ?N2 )." +
            "}GROUP BY ?id";
}

Output : screenshot of the output

Part from File

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:aapi="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#"
     xmlns:owl="http://www.w3.org/2002/07/owl#"
     xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
     xml:base="http://rdf.alchemyapi.com/rdf/v1/r/response.rdf">
<rdf:Description rdf:ID="db844b19ba6b2a6bc2f4e1ea706f63335a63955cf">
    <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#DocInfo"/>
    <aapi:ResultStatus>OK</aapi:ResultStatus>
    <aapi:Usage>By accessing AlchemyAPI or using information generated by AlchemyAPI, you are agreeing to be bound by the AlchemyAPI Terms of Use: http://www.alchemyapi.com/company/terms.html</aapi:Usage>
    <aapi:URL>http://www.confluence-denver.com/innovationnews/alchemyapi_booming.aspx/</aapi:URL>
    <aapi:Language>english</aapi:Language>
</rdf:Description>
<rdf:Description rdf:ID="db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_1">
    <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationOccurrence"/>
    <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
    <aapi:RelationSentence> In 2009, Elliot Turner launched AlchemyAPI to process the written word, with all of its quirks and nuances, and got immediate traction.</aapi:RelationSentence>
    <aapi:RelationSubject>
        <rdf:Description rdf:about="#db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_1">
            <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationSubject"/>
            <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
            <aapi:Text>Elliot Turner</aapi:Text>
        </rdf:Description>
    </aapi:RelationSubject>
    <aapi:RelationAction>
        <rdf:Description rdf:about="#db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_1">
            <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationAction"/>
            <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
            <aapi:Text>to process</aapi:Text>
            <aapi:LemmatizedText>to process</aapi:LemmatizedText>
            <aapi:VerbText>process</aapi:VerbText>
            <aapi:VerbTense>future</aapi:VerbTense>
        </rdf:Description>
    </aapi:RelationAction>
    <aapi:RelationObject>
        <rdf:Description rdf:about="#db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_1">
            <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationObject"/>
            <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
            <aapi:Name>the written word, with all of its quirks and nuances</aapi:Name>
        </rdf:Description>
    </aapi:RelationObject>
</rdf:Description>
<rdf:Description rdf:ID="db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_2">
    <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationOccurrence"/>
    <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
    <aapi:RelationSentence> In 2009, Elliot Turner launched AlchemyAPI to process the written word, with all of its quirks and nuances, and got immediate traction.</aapi:RelationSentence>
    <aapi:RelationSubject>
        <rdf:Description rdf:about="#db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_2">
            <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationSubject"/>
            <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
            <aapi:Text>immediate traction</aapi:Text>
        </rdf:Description>
    </aapi:RelationSubject>
    <aapi:RelationAction>
        <rdf:Description rdf:about="#db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_2">
            <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationAction"/>
            <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
            <aapi:Text>got</aapi:Text>
            <aapi:LemmatizedText>get</aapi:LemmatizedText>
            <aapi:VerbText>get</aapi:VerbText>
            <aapi:VerbTense>past</aapi:VerbTense>
        </rdf:Description>
    </aapi:RelationAction>
</rdf:Description>
<rdf:Description rdf:ID="db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_3">
    <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationOccurrence"/>
    <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
    <aapi:RelationSentence> That first month, the company's eponymous language-analysis API processed 500,000 transactions.</aapi:RelationSentence>
    <aapi:RelationSubject>
        <rdf:Description rdf:about="#db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_3">
            <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationSubject"/>
            <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
            <aapi:Text>the company's eponymous language-analysis API</aapi:Text>
        </rdf:Description>
    </aapi:RelationSubject>
    <aapi:RelationAction>
        <rdf:Description rdf:about="#db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_3">
            <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationAction"/>
            <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
            <aapi:Text>processed</aapi:Text>
            <aapi:LemmatizedText>process</aapi:LemmatizedText>
            <aapi:VerbText>process</aapi:VerbText>
            <aapi:VerbTense>past</aapi:VerbTense>
        </rdf:Description>
    </aapi:RelationAction>
    <aapi:RelationObject>
        <rdf:Description rdf:about="#db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_3">
            <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationObject"/>
            <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
            <aapi:Name>500,000 transactions</aapi:Name>
        </rdf:Description>
    </aapi:RelationObject>
</rdf:Description>
<rdf:Description rdf:ID="db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_4">
    <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationOccurrence"/>
    <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
    <aapi:RelationSentence> Today it's processing three billion transactions a month, or about 1,200 a second.</aapi:RelationSentence>
    <aapi:RelationSubject>
        <rdf:Description rdf:about="#db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_4">
            <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationSubject"/>
            <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
            <aapi:Text>it</aapi:Text>
        </rdf:Description>
    </aapi:RelationSubject>
    <aapi:RelationAction>
        <rdf:Description rdf:about="#db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_4">
            <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationAction"/>
            <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
            <aapi:Text>has</aapi:Text>
            <aapi:LemmatizedText>has</aapi:LemmatizedText>
            <aapi:VerbText>has</aapi:VerbText>
            <aapi:VerbTense>present</aapi:VerbTense>
        </rdf:Description>
    </aapi:RelationAction>
    <aapi:RelationObject>
        <rdf:Description rdf:about="#db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_4">
            <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationObject"/>
            <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
            <aapi:Name>processing three billion transactions a month, or about 1,200 a second</aapi:Name>
        </rdf:Description>
    </aapi:RelationObject>
</rdf:Description>
<rdf:Description rdf:ID="db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_5">
    <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationOccurrence"/>
    <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
    <aapi:RelationSentence> Today it's processing three billion transactions a month, or about 1,200 a second.</aapi:RelationSentence>
    <aapi:RelationSubject>
        <rdf:Description rdf:about="#db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_5">
            <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationSubject"/>
            <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
            <aapi:Text>it</aapi:Text>
        </rdf:Description>
    </aapi:RelationSubject>
    <aapi:RelationAction>
        <rdf:Description rdf:about="#db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_5">
            <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationAction"/>
            <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
            <aapi:Text>processing</aapi:Text>
            <aapi:LemmatizedText>process</aapi:LemmatizedText>
            <aapi:VerbText>process</aapi:VerbText>
            <aapi:VerbTense>present</aapi:VerbTense>
        </rdf:Description>
    </aapi:RelationAction>
    <aapi:RelationObject>
        <rdf:Description rdf:about="#db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_5">
            <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationObject"/>
            <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
            <aapi:Name>three billion transactions a month, or about 1,200 a second</aapi:Name>
        </rdf:Description>
    </aapi:RelationObject>
</rdf:Description>
<rdf:Description rdf:ID="db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_6">
    <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationOccurrence"/>
    <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
    <aapi:RelationSentence> “That's a growth rate of 6,000 times over three years,” touts Turner.</aapi:RelationSentence>
    <aapi:RelationSubject>
        <rdf:Description rdf:about="#db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_6">
            <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationSubject"/>
            <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
            <aapi:Text>That</aapi:Text>
        </rdf:Description>
    </aapi:RelationSubject>
    <aapi:RelationAction>
        <rdf:Description rdf:about="#db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_6">
            <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationAction"/>
            <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
            <aapi:Text>has</aapi:Text>
            <aapi:LemmatizedText>has</aapi:LemmatizedText>
            <aapi:VerbText>has</aapi:VerbText>
            <aapi:VerbTense>present</aapi:VerbTense>
        </rdf:Description>
    </aapi:RelationAction>
    <aapi:RelationObject>
        <rdf:Description rdf:about="#db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_6">
            <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationObject"/>
            <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
            <aapi:Name>a growth rate of 6,000 times</aapi:Name>
        </rdf:Description>
    </aapi:RelationObject>
</rdf:Description>
<rdf:Description rdf:ID="db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_7">
    <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationOccurrence"/>
    <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
    <aapi:RelationSentence> “Context is super-important,” he adds.</aapi:RelationSentence>
    <aapi:RelationSubject>
        <rdf:Description rdf:about="#db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_7">
            <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationSubject"/>
            <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
            <aapi:Text>Context</aapi:Text>
        </rdf:Description>
    </aapi:RelationSubject>
    <aapi:RelationAction>
        <rdf:Description rdf:about="#db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_7">
            <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationAction"/>
            <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
            <aapi:Text>is</aapi:Text>
            <aapi:LemmatizedText>be</aapi:LemmatizedText>
            <aapi:VerbText>be</aapi:VerbText>
            <aapi:VerbTense>present</aapi:VerbTense>
        </rdf:Description>
    </aapi:RelationAction>
    <aapi:RelationObject>
        <rdf:Description rdf:about="#db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_7">
            <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationObject"/>
            <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
            <aapi:Name>super-important</aapi:Name>
        </rdf:Description>
    </aapi:RelationObject>
</rdf:Description>
<rdf:Description rdf:ID="db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_8">
    <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationOccurrence"/>
    <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
    <aapi:RelationSentence> “Context is super-important,” he adds.</aapi:RelationSentence>
    <aapi:RelationSubject>
        <rdf:Description rdf:about="#db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_8">
            <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationSubject"/>
            <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
            <aapi:Text>he</aapi:Text>
        </rdf:Description>
    </aapi:RelationSubject>
    <aapi:RelationAction>
        <rdf:Description rdf:about="#db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_8">
            <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationAction"/>
            <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
            <aapi:Text>adds</aapi:Text>
            <aapi:LemmatizedText>add</aapi:LemmatizedText>
            <aapi:VerbText>add</aapi:VerbText>
            <aapi:VerbTense>present</aapi:VerbTense>
        </rdf:Description>
    </aapi:RelationAction>
    <aapi:RelationObject>
        <rdf:Description rdf:about="#db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_8">
            <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationObject"/>
            <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
            <aapi:Name>Context is super-important</aapi:Name>
        </rdf:Description>
    </aapi:RelationObject>
</rdf:Description>
<rdf:Description rdf:ID="db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_9">
    <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationOccurrence"/>
    <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
    <aapi:RelationSentence> “'I'm dying' is a lot different than 'I'm dying to buy the new iPhone.'”</aapi:RelationSentence>
    <aapi:RelationSubject>
        <rdf:Description rdf:about="#db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_9">
            <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationSubject"/>
            <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
            <aapi:Text>'I</aapi:Text>
        </rdf:Description>
    </aapi:RelationSubject>
    <aapi:RelationAction>
        <rdf:Description rdf:about="#db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_9">
            <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationAction"/>
            <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
            <aapi:Text>is</aapi:Text>
            <aapi:LemmatizedText>be</aapi:LemmatizedText>
            <aapi:VerbText>be</aapi:VerbText>
            <aapi:VerbTense>present</aapi:VerbTense>
        </rdf:Description>
    </aapi:RelationAction>
    <aapi:RelationObject>
        <rdf:Description rdf:about="#db844b19ba6b2a6bc2f4e1ea706f63335a63955cf-r_9">
            <rdf:type rdf:resource="http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#RelationObject"/>
            <aapi:Doc>db844b19ba6b2a6bc2f4e1ea706f63335a63955cf</aapi:Doc>
            <aapi:Name>a lot different</aapi:Name>
        </rdf:Description>
    </aapi:RelationObject>
</rdf:Description>
TallTed
  • 9,069
  • 2
  • 22
  • 37
  • Why shouldn't you be able to distinguish between relationsubject and relationaction? Of course you have to keep track of that information when writing the SPARQL query, i.e. you have to add more triple patterns. – UninformedUser Feb 03 '17 at 20:39
  • @AKSW I need Subject to link it with dbpedia owl:same as, I can't do this without distinguish between them i tried to make a query but it it doesn't give me the triple inside aapi:RelationSubject. IF i execute this query ?id aapi:RelationSubject ?M the two variables will refer to the same thing "rdf:id" My problem is i can't retrieve aapi:text that exists inside aapi:RelationSubject. – Sunshine 94 Feb 04 '17 at 14:35

0 Answers0